我正在创建一个应用程序,用户可以在其中收藏一个房间。我通过 has_and_belongs_to_many 关联实现了这一点。我选择了这个而不是 has_many :through 因为这需要第三个模型(可能是收藏夹)并且它只会用于创建关联。
如何将不喜欢的(销毁)操作添加到视图或控制器中?
rooms_controller.rb
def favorite
room = Room.find(params[:id])
current_user.rooms << room unless current_user.rooms.exists?(room)
redirect_to wishlist_path
end
路线.rb
post 'rooms/:id/favorite' => 'rooms#favorite'
show.html.erb(房间)
<div>Add to Wishlist</div>
<%= form_tag(controller: "rooms", action: "favorite", method: "post") do %>
<%= submit_tag "Favorite"%>
<% end %>
愿望清单.hmtl.erb
<% current_user.rooms.each do |room| %>
<%= room.listing_name %>
<% end %>