【问题标题】:Ruby on Rails: Invert checkbox check/uncheck value on submitRuby on Rails:在提交时反转复选框选中/取消选中值
【发布时间】: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


【解决方案1】:

我是 Rails 的初学者,但如果复选框已经选中可能会更好

【讨论】:

  • 他们已经检查过了。但是取消选中它们并按下取消订阅按钮很奇怪,这就是我想要它反转的原因。
猜你喜欢
  • 1970-01-01
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 2020-01-31
  • 2014-11-19
  • 1970-01-01
相关资源
最近更新 更多