Ruby on rails 如何使用rails复选框获取表单中的模型对象?
如何从数据库中获取表单中的复选框值?我希望表单包含现有的子类别名称,当我选中复选框以选择该特定类别名称而不创建新类别名称时,我尝试了ryan bate的railscast,但没有任何帮助。这里的关系是类别有很多子类别,子类别属于类别。谢谢Ruby on rails 如何使用rails复选框获取表单中的模型对象?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,checkbox,form-helpers,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Checkbox,Form Helpers,如何从数据库中获取表单中的复选框值?我希望表单包含现有的子类别名称,当我选中复选框以选择该特定类别名称而不创建新类别名称时,我尝试了ryan bate的railscast,但没有任何帮助。这里的关系是类别有很多子类别,子类别属于类别。谢谢 <%= form_for @category ,:url=>{:action =>"create"} do |f| %> <%=f.text_field :category_name %> <%= f.field
<%= form_for @category ,:url=>{:action =>"create"} do |f| %>
<%=f.text_field :category_name %>
<%= f.fields_for :sub_categories do |s| %>
<% @category.sub_categories.each do |sub|%>
<%=s.check_box "name",{},sub.id %> <!--need help here-->
<%end%>
<%end%>
<%=f.submit "submit"%>
<%end%>
根据注释中的交换,您似乎希望使用复选框将子类别对象指定给类别对象。如果是这样的话,你的关联应该是一个类别有很多子类别。那么您的表单将类似于:
<%= form_for @category ,:url=>{:action =>"create"} do |f| %>
<%=f.text_field :category_name %>
<% SubCategories.each do |sc| %>
<div>
<%= check_box_tag :sub_category_ids, sub_category_id, @category.sub_categories.include?(sc), :name => 'category[sub_category_ids][]' -%>
<%= label_tag :sub_category_ids, sc.name -%>
</div>
<% end -%>
<% end %>
根据注释中的交换,您似乎希望使用复选框将子类别对象指定给类别对象。如果是这样的话,你的关联应该是一个类别有很多子类别。那么您的表单将类似于:
<%= form_for @category ,:url=>{:action =>"create"} do |f| %>
<%=f.text_field :category_name %>
<% SubCategories.each do |sc| %>
<div>
<%= check_box_tag :sub_category_ids, sub_category_id, @category.sub_categories.include?(sc), :name => 'category[sub_category_ids][]' -%>
<%= label_tag :sub_category_ids, sc.name -%>
</div>
<% end -%>
<% end %>
我想我遗漏了一点:您正在视图中呈现该类别的所有子类别,那么复选框的用途是什么?@miked用户将检查一个子类别,基本上是通过检查它,他正在选择它,所以稍后我们应该能够告诉用户选择了哪个子类别,选择它做了什么?假设你有一个类别,它已经有了子类别,子类别。您可以渲染表单。该表单显示了CategoryA的字段,只有子类别和子类别。每个子类别都有一个复选框-子类别上的复选框设置是什么属性?是否确实不希望为每个父类别窗体显示所有可能的子类别?如果选中/取消选中子类别,则会将选中的子类别分配/取消分配给父类别?是的,你是对的,这就是我想要的,并且我在类别模型中有一个名为“值”的字段,该字段将被分配/取消分配,但我不知道如何设置表单来实现这一点。我想我遗漏了一点:您正在视图中呈现该类别的所有子类别,那么复选框的用途是什么?@miked用户将检查子类别,基本上是通过选中它,他选择它,所以稍后我们应该能够告诉用户选择哪个子类别正确,选择它做什么?假设你有一个类别,它已经有了子类别,子类别。您可以渲染表单。该表单显示了CategoryA的字段,只有子类别和子类别。每个子类别都有一个复选框-子类别上的复选框设置是什么属性?是否确实不希望为每个父类别窗体显示所有可能的子类别?如果选中/取消选中子类别,则会将选中的子类别分配/取消分配给父类别?是的,你是对的,这就是我想要的,并且我在类别模型中有一个名为“值”的字段,该字段将被分配/取消分配,但我不知道如何设置表单来实现这一点。谢谢。如果我已经完成了很多,该怎么办,那我该怎么办?我不认为只要你的协会名称保持不变就有什么区别。i、 e.has\u many:sub\u categories,:through=>:whatevers谢谢。如果我has\u many通过了,我会怎么做?我认为只要你的协会名称保持不变,这不会有什么区别。i、 e.有很多子类,:通过=>:什么