基本的に、リンクを「お気に入り」から「削除済み」に動的に更新できるようにすると同時に、新しいボタンを再クリックして戻るオプションをユーザーに提供したいと考えています。ただし、ページを更新すると更新されたボタンが表示されるため、アクションは発生します。「このクラスをお気に入りに登録」リンクをクリックしても機能しないのはなぜですか? 「この教室を削除する」リンクが機能しているようです。ご協力いただきありがとうございます
お気に入り_コントローラー.rb:
def create
current_classroom.add_to_favorites(@classroom)
current_classroom.save
respond_to do |format|
format.js { }
format.html {redirect_to @classroom}
end
end
def destroy
current_classroom.remove_from_favorites(@classroom)
current_classroom.save
respond_to do |format|
format.js { }
format.html {redirect_to @classroom}
end
end
お気に入り/create.js.erb
$("#favorite_classroom").html("<%= escape_javascript(link_to 'Remove the Classroom', classroom_favorite_path(@classroom), :remote => true, :method => :delete) %>");
教室/_classroom_details.html.erb
<div id="favorite_classroom">
<% if loggedin_user.favorite_classroom?(@classroom) %>
<%= link_to 'Remove this Classroom', classroom_favorite_path(@classroom), :remote => true, :method => :delete %>
<% else %>
<%= link_to 'Favorite this Classroom', classroom_favorites_path(@classroom), :remote => true, :method => :post %>
<% end %>
ルート:
classroom_favorites POST /classrooms/:classroom_id/favorites(.:format) {:action=>"create", :controller=>"favorites"}
classroom_favorite DELETE /classrooms/:classroom_id/favorites/:id(.:format) {:action=>"destroy", :controller=>"favorites"}
「このクラスルームをお気に入りに追加」リンクをクリックするとエラーが発生する:
ActionView::Template::Error (No route matches {:action=>"destroy", :controller=>"favorites"
ありがとう!