【问题标题】:Has_many through formHas_many 通过表单
【发布时间】:2014-05-04 02:23:35
【问题描述】:

我希望对构建一个 has_many :through 关系的表单有所帮助。

我有三个班级:

order.rb

has_many :selections
has_many :items, :through =>:selections;

item.rb

has_many :selections
has_many :orders, :through => :selections

selection.rb

belongs_to :order
belongs_to :item

Selections 上有一个额外的属性来捕获所选项目的数量。

我要做的是创建一个表单,允许用户选中一个框,指示他们想要的项目类型并提供数量。

_X_ Food1 _6_
___ Food2 __
_X_ Food3 _1_

我的问题是我不知道如何命名表单元素以便它们进入控制器。我不能用

<%= collection_check_boxes(:order, :item_ids, @course.items.all, :id, :name, {:item_wrapper_class => 'checkbox_container'}) %>

因为这只会打印带有复选框的食物,我需要捕获每个选定项目的数量。

我可以使用的帮助是如何创建 _form.html.erb 以及我可能需要在我的控制器中具有的特殊陷阱。

【问题讨论】:

    标签: ruby forms ruby-on-rails-4 has-many-through has-and-belongs-to-many


    【解决方案1】:

    首先,item.rb 应该是,

    has_many :selections
    has_many :orders, :through => :selections
    

    其次,为什么要使用复选框?为什么不直接形成如果空默认为零或零?也就是说,如果您有多个,则可以将其用作真实值,而不是检查是否检查。

    【讨论】:

    • 感谢您发现项目上的错字。您建议我只做 Food1 [2] Food2 [ ] Food3 [4] 这绝对是一种更好的方法,但我仍然不确定如何构造表单以便控制器正确填充选择。
    • 您能更深入地了解您正在尝试做的事情吗?
    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 2020-05-01
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多