2016-11-28 5 views
0

umfassen i ein ähnliches Modell bin zu schaffen, also hier ist ein Code:Wie die Schienen machen link_to anderen Tags

- if policy(bonus).liked_by? 
     = link_to(image_tag("heart--filled--green.png", class: "Dislike"), 
       bonus_like_path(bonus, bonus.user_like(current_user)), method: :delete, 
       data: { remote: true, behavior: "fragments" }) 
    - else 
     = link_to(image_tag("heart.svg", class: "Like"), 
       bonus_likes_path(bonus), method: :post, 
       data: { remote: true, behavior: "fragments" }) 
    - if bonus.likes_count.zero? 
     span Like 
    -else 
     span.has-tip data-tooltip="" title="#{ bonus.liked_by }" Like 
    span class="like_count" #{ bonus.likes_count } 

Und es so etwas wie dies erzeugt:

enter image description here

Das Problem ist das, wenn ich etwas mögen möchte, möchte ich auf das Herz drücken (wie das gegebene Bild), aber ich muss die Gelegenheit geben, überall zu drücken, einschließlich der Zeitspanne, wie Gleiches und Gleiches zählt. Wie kann ich mein Problem lösen?

+0

Sie Frage ist nicht klar. Sie möchten, dass der gesamte Inhalt auf ein Klickereignis reagiert, um eine ähnliche Aktivität auszuführen? – Rubyrider

Antwort

3

Um das Bild zusammen mit dem span s Teil der Verbindung zu machen, wickeln Sie sie innerhalb link_to mit einem Block ein.

= link_to bonus_likes_path(bonus), method: :post, data: { remote: true, behavior: "fragments" } do 
    = image_tag("heart.svg", class: "Like" 
    - if bonus.likes_count.zero? 
    span Like 
    - else 
    span.has-tip data-tooltip="" title="#{ bonus.liked_by }" Like 
    span class="like_count" #{ bonus.likes_count } 
0

Sie können einen größeren Block in link_to haben mit:

<%= link_to desired_path do %> 
    <div class="class-name"> 

    </div> 
<% end %>