make_flaggable ジェムを使用して、 という「いいね」ボタンを作成しています:fav
。コードは動作していますが、動的に更新されるように Ajax に移行できないようです。link_to
問題は私のアクションまたは にある可能性がありますが、redirect_to
何に変更すればよいかわかりません。どんな助けでも大歓迎です!
events_controller.rb
def fav
@event = Event.find(params[:id])
current_user.toggle_flag(@event, :fav) #toggles the fav
respond_to do |format|
format.js
format.html { redirect_to :back }
end
end
helpers/events_helper.rb
def toggle_fav(event, user)
link_to
user.flagged?(event, :fav) ? #if the user has already flagged(favoured) the event
content_tag(:span, " ", :class => "glyphicon glyphicon-heart") : #show a full heart icon
content_tag(:span, " ", :class => "glyphicon glyphicon-heart-empty"), #show an empty heart icon
fav_event_path(event), #this updates the database and I think is the cause of the problem
:remote => true
end
ビュー/イベント/fav.js.erb
$('.fav-heart').html("<%= escape_javascript toggle_fav(event, current_user) %>");
views/events/index.html.erb (お気に入りに関連するもの)
<li class="fav-heart">
<%= toggle_fav(event, current_user) %>
</li>