2016-11-01 4 views
-1

Ich habe ein Raummodell und möchte einen Share-Button für Facebook erstellen. Also entschied ich mich, dies mit der Shareur-URL-Methode zu tun. Ich möchte ein Facebook-Icon auf der show.html.erb (Raumansicht) haben, wo ein Benutzer oder Besucher das Zimmer auf Facebook teilen kann. Wenn ich auf den Link klicke, werde ich nach Facebook weitergeleitet, wo ich den Link manuell eingeben muss und nicht automatisch den, den ich teilen möchte. Wenn ich die show.html.erb link_to in bin Aktualisierung:Facebook Share-Taste funktioniert nicht?

<%= link_to image_tag('facebook_icon_red.png'), 'http://www.facebook.com/sharer.php?u=<%= yield :url %>', :target => :blank %> 

Dann bin ich erhalte eine Fehlermeldung:

enter image description here

Wie kann ich diese Arbeit machen?

application.html.erb

<!DOCTYPE html> 
<html> 
    <head> 
... 
... 
    <!-- for Facebook -->   
    <meta property="og:title" content="<%= @room.listing_name %>" /> 
    <meta property="og:type" content="room" /> 
    <meta property="og:image" content="" /> 
    <meta property="og:url" content="<%= room_url(@room) %>" /> 
    <meta property="og:description" content="<%= @room.detailed_description %>" /> 
    </head> 

<body> 
    <!-- Facebook Sharing Settings--> 
    <div id="fb-root"> 
    </div> 
    <script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    FB.init({ 
     appId: MY_ID(SOME NUMBERS), 
     status: true, 
     cookie: true, 
     xfbml: true 
    }); 
    FB.Canvas.setAutoResize(); 
    </script> 
... 
... 
... 
    </body> 
</html> 

show.html.erb (Zimmer)

... 
<!-- Do you like this Accommodation? --> 
<%= link_to image_tag('facebook_icon_red.png'), "http://www.facebook.com/sharer.php?u=", :target => :blank %> 

FB.ui(
    { 
    method: 'feed', 
    name: 'Facebook Dialogs', 
    link: 'http://developers.facebook.com/docs/reference/dialogs/', 
    picture: 'http://fbrell.com/f8.jpg', 
    caption: 'Reference Documentation', 
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.', 
    message: 'Facebook Dialogs are easy!' 
    }, 
    function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
    } 
); 
+0

Wofür nennen Sie FB.ui mit der Feed-Methode? – CBroe

+0

Die Facebook-JavaScript-API sollte mir erlauben, zu teilen und mir einen Rückruf zu geben. [Quelle] (http://stackoverflow.com/questions/4980061/twitter-and-facebook-share-with-callbacks/6253936#6253936) – trickydiddy

+0

Ja, aber es hat keine Verbindung zu Ihrem Link überhaupt, und dieser Link löst aus hier teilen. Ihr FB.ui-Aufruf hat nichts mit diesem Link zu tun und geschieht automatisch, ohne dass der Benutzer etwas anklickt. Das macht wenig Sinn. – CBroe

Antwort

0

Ihre link_to wie auf diese Weise setzen:

<%= link_to image_tag('facebook_icon_red.png'), "http://www.facebook.com/sharer.php?u=#{yield :url }", :target => :blank %> 

Dieses Shou Ich werde für dich arbeiten.

+0

Ich muss noch manuell eine URL eingeben :(Aber danke, dass du mir hilfst! – trickydiddy

+1

Die '#' hat natürlich keinen Platz drin. – CBroe

+1

Verwende 'doppelte Anführungszeichen' wenn du interpolieren musst –

Verwandte Themen