Ruby on Rails:在提交时反转复选框的选中/取消选中值

时间:2019-04-15 16:50:36

标签: html ruby-on-rails checkbox form-for

我有一个网站,您可以在其中注册一些我称为“对话”的活动。注册后,“来宾”会收到一封确认电子邮件,其中包含生成的退订链接。 该链接将打开一个表单,其中包含来宾注册的所有事件。

现在要取消订阅活动,来宾必须取消选中该事件的复选框。但是我希望它倒过来,以便他们必须检查该事件才能取消订阅。


模型

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

我找不到解决方案,所以希望你们能告诉我如何反转复选框?

1 个答案:

答案 0 :(得分:-1)

我是Rails的初学者,但是如果复选框已被选中