Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails4:从阵列收集复选框_Ruby On Rails_Ruby_Ruby On Rails 4_Form For - Fatal编程技术网

Ruby on rails Rails4:从阵列收集复选框

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

是否有某种方法可以从一个常量序列化集合\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, 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 %>