2010-01-18 125 views
0

我刚刚学习rails并遇到了一些问题。让我开始与我的应用程序的简单故障 - 它的(的种类)在多个模型的窗体上使用多个collection_select元素

  • 食谱有一种或多种成分(金枪鱼,脾等)
  • 主料有一个单位(盎司,磅,等了一本食谱)
  • 单位是从查找表

这里拉是截图,以帮助进一步澄清事情: Form Mockup

她e是我的问题:我的collection_select元素名称应该与unit[id][]

相反,它们都只是名为unit[id]。下面是我使用的代码片段:

 
collection_select(
    :unit, 
    :id, 
    @units, 
    :id, 
    :name, 
    options = { 
     :prompt => "Please Select", 
     :class => "ingredient_unit", 
     :name => "unit[][]", 
     :id => "unit:" + i.to_s() 
    } 
); 

然而,这是它的输出:

 
<select id="unit_id" name="unit[id]"> 
<option value="">Please Select</option> 
<option value="1">Ounces</option> 
</select> 
... 

现在,在PHP中,这些下拉菜单将被命名为unit[]。我是否以这种错误的方式去做?

感谢您的帮助

回答

0

我不知道的“名”选项的作用,在“选项”散列什么。你能发布一个链接到你找到的文件的地方吗?看起来您正在正确使用收集选择助手。 “这些下拉菜单是指单位[]”是什么意思?如果你告诉我们你的这个表单的最终目标可能会有所帮助,因为Rails通常只是为你处理东西。利用它的魔力。

另外,如果您是Rails初学者,强烈建议查看Ryan Bates对复杂表单的截屏视频。这里是链接到第1部分: http://railscasts.com/episodes/73-complex-forms-part-1

+0

感谢您的链接,它帮助很多。至于':name'参数,它更多的是一个假设。与其他表单助手一样,你可以传入':name'来设置文本输入的名字或者什么。 至于我的表单目标,它是创建一个新配方,并将配料分配到该配方,并将单位分配给每种配料。至于'unit []'备注:在PHP中,如果你想指定一个表单元素的数组,你可以在元素名的后面追加'[]',然后'$ _POST'将把'$ _POST [“单位“]'作为一个数组。我希望有所帮助。 – 2010-01-18 21:10:05

+0

只是一个警告,他谈到的一些事情的代码已经被嵌套属性取代。 http://railscasts.com/episodes/196-nested-model-form-part-1 – 2010-01-18 22:03:31