2017-02-26 8 views
0

私はacts_as_votable gemを使用しています。今、好きなボタンと嫌いなボタンが正しく機能していて、そのようなものがデータベースに保存されています。私が必要とするのは、「好き」と「嫌い」のテキストをグリフィコンに置き換えることです。 data:{toggle_text: 'Like'部分はテキスト値のみを受け入れ、JSはデータトグルテキストにフックされているため、現在は機能しません。データトグルテキストをグリフコンに置き換えるにはどうすればよいですか? (RailsとJSの使用)

私はこれにどのようにアプローチすればよいですか?ご協力いただきありがとうございます。

likes.js.coffeeファイル

$(document).on 'ajax:success', 'a.vote', (status,data,xhr)-> 
    # update counter 
    $(".votes-count[data-id=#{data.id}]").text data.count 

    # toggle links 
    $("a.vote[data-id=#{data.id}]").each -> 
    $a = $(this) 
    href = $a.attr 'href' 
    text = $a.text() 
    $a.text($a.data('toggle-text')).attr 'href', $a.data('toggle-href') 
    $a.data('toggle-text', text).data 'toggle-href', href 
    return 

    return 

show.html.erbファイル

<% if current_user.liked? @review %> 
<%= link_to "Dislike", dislike_review_path(@review), class: 'vote', method: :put, remote: true, data: { toggle_text: 'Like', toggle_href: like_review_path(@review), id: @review.id } %> 
<% else %> 
<%= link_to "Like", like_review_path(@review), class: 'vote', method: :put, remote: true, data: { toggle_text: 'Dislike', toggle_href: dislike_review_path(@review), id: @review.id } %> 
<% end %> 

<span class="votes-count" data-id="<%= @review.id %>"> 
<%= @review.get_likes.size %> 
</span> 
users like this 
<br> 

答えて

1

あなたはその

likes.js.coffeeような何かをしようとすることができ

$(document).on 'ajax:success', 'a.vote', (status,data,xhr)-> 
    # update counter 
    $(".votes-count[data-id=#{data.id}]").text data.count 

    # toggle links 
    $("a.vote[data-id=#{data.id}]").each -> 
    $a = $(this) 
    href = $a.attr 'href' 
    text = $a.html() 
    $a.html($a.data('toggle-text')).attr 'href', $a.data('toggle-href') 
    $a.data('toggle-text', text).data 'toggle-href', href 
    return 

    return 
このための

show.html.erb

<% if current_user.liked? @review %> 
    <%= link_to '<i class="glyphicon glyphicon-star"></i>'.html_safe, dislike_review_path(@review), class: 'vote', method: :put, remote: true, data: { toggle_text: "<i class='glyphicon glyphicon-star-empty'></i>".html_safe, toggle_href: like_review_path(@review), id: @review.id } %> 
<% else %> 
    <%= link_to '<i class="glyphicon glyphicon-star-empty"></i>'.html_safe, like_review_path(@review), class: 'vote', method: :put, remote: true, data: { toggle_text: "<i class='glyphicon glyphicon-star'></i>".html_safe, toggle_href: dislike_review_path(@review), id: @review.id } %> 
<% end %> 

<span class="votes-count" data-id="<%= @review.id %>"> 
<%= @review.get_likes.size %> 
</span> 
users like this 
<br> 
+0

感謝。しかし、それは動作していないようで、グリフコンとしてレンダリングするのではなく、平文でを表示します。 – Joshua

+0

@Joshuaあなたは改善された答えをチェックできますか? – bgs

+0

完璧に作業しました!乾杯。 – Joshua

関連する問題