Ruby on rails Rails4:从阵列收集复选框
是否有某种方法可以从一个常量序列化集合\u复选框? 大概是这样的:Ruby on rails Rails4:从阵列收集复选框,ruby-on-rails,ruby,ruby-on-rails-4,form-for,Ruby On Rails,Ruby,Ruby On Rails 4,Form For,是否有某种方法可以从一个常量序列化集合\u复选框? 大概是这样的: # model class tutorial < ActiveRecord::Base serialize :option TYPES = ["Option 1", "Option 2", "Option 3"] end # view <%= form_for(@tutorial) do |b| %> <%= f.collection_check_boxes(:option, Tutoria
# model
class tutorial < ActiveRecord::Base
serialize :option
TYPES = ["Option 1", "Option 2", "Option 3"]
end
# view
<%= form_for(@tutorial) do |b| %>
<%= f.collection_check_boxes(:option, Tutorial::TYPES, :id, :name) do |b| %>
<%= b.label class:"label-checkbox" do%>
<%=b.check_box + b.text%>
<%end%>
<% end %>
<% end %>
<%= f.collection_check_boxes :option, Tutorial.all, :id, :type %>
我的许可证参数已设置为选项:[]
以前有人做过这样的事
谢谢 定义是:
collection_check_boxes(method, collection, value_method, text_method, options = {}, html_options = {}, &block)`
第一个是要发送的方法,第二个是集合,第三个是调用以设置选项值属性的方法,第四个是调用以获取文本并将其作为选项标签的方法
<%= f.collection_check_boxes :option, Tutorial::TYPES, :id, :name %>
然后像这样使用它:
# model
class tutorial < ActiveRecord::Base
serialize :option
TYPES = ["Option 1", "Option 2", "Option 3"]
end
# view
<%= form_for(@tutorial) do |b| %>
<%= f.collection_check_boxes(:option, Tutorial::TYPES, :id, :name) do |b| %>
<%= b.label class:"label-checkbox" do%>
<%=b.check_box + b.text%>
<%end%>
<% end %>
<% end %>
<%= f.collection_check_boxes :option, Tutorial.all, :id, :type %>
但使用“Tutorial.all”我可以从模型中进行查询。这正是我不想做的。我需要的是从数组中调用它,就像我们使用“select”助手时所做的那样:@no好的,那么最后两个元素不应该是:id和:name,因为这些是对集合的每个元素调用的方法,所以您尝试在选项1:String上调用:id和:name。您可以将类型更改为散列,其中键或值是索引,并像这样使用:。对于[1,使用类似:[[1,选项1],[2,选项2],[3,选项3]]的数组,得到了相同的错误“未定义的方法键”。@Fernando当然,如果您使用的是数组,则没有键或值方法。您应该使用:first和:last。
<%= f.collection_check_boxes :option, Tutorial.all, :id, :type %>