【发布时间】:2019-04-15 16:50:36
【问题描述】:
我有一个网站,您可以在其中注册一些我称为会谈的活动。注册后,“客人”会收到一封确认电子邮件,其中包含生成的退订链接。 该链接会打开一个表格,其中列出了客人注册的所有活动。
现在要取消订阅活动,客人必须取消选中活动的复选框。但我希望它倒置,以便他们必须检查该事件才能取消订阅。
模型
class Guest < ApplicationRecord
has_and_belongs_to_may :talks
end
class Talk < ApplicationRecord
has_and_belongs_to_may :guests
end
退订表单
<%= form_for @guest do |f| %>
<% f.collection_check_boxes :talk_ids, @guest.talks, :id, :name do |b| %>
<%= b.check_box %>
<%= b.object.name %>
<% end %>
<input type="submit" value="Unsubscribe">
<% end %>
提交后的更新功能
def update_talks
@guest = Guest.find(params[:id])
if @guest.update(guest_params)
redirect_to root_url
else
flash[:notice] = "Failed"
end
end
我找不到解决方案,所以希望你们能告诉我如何反转复选框?
【问题讨论】:
-
您可以将所有复选框显示为未选中,然后您必须更改复选框作为参数发送的默认值,如选中您必须发送 0 而不是 1,或者 false 而不是 true ,这将对您有所帮助api.rubyonrails.org/classes/ActionView/Helpers/…
-
但是因为我使用了collection_check_boxes,所以我不能给出我的b.check_box 参数,除了extra_html_options 的一个。如何设置collection_check_boxes的checked_value?
标签: html ruby-on-rails checkbox form-for