Rails 3. HABTM表单选择下拉菜单

时间:2012-01-04 22:49:51

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

我有发票表格。这是一个简化版本:因此它包含行项目,您可以在其中选择产品名称的下拉菜单。

这很有效:所以invoice-line_item关系是这样的:invoice has_many line_items和line_item属于invoice。 line_item属于item和item has_many line_items。我正确地设置了物品,line_items和发票。

但现在我想为订单项添加税金。

所以我创建了一个line_items_taxes表来创建line_items和tax之间的HABTM关系。但是我无法在表单中正确设置它。我的表格看起来像这样......

|name|price|tax|
|   v|     |  v|
|   v|     |  v|
|   v|     |  v|
[save invoice]

所以我需要一个TAXES下拉选择菜单,保存发票后,它会为每个订单项保存税。

我尝试了http://snippets.dzone.com/posts/show/4369Rails HABTM Question提供的解决方案,但我收到了错误。

未定义的方法合并:name:Symbol  <%= f.collection_select "line_item", "tax_ids", @taxes, :id, :name, {:name => 'line_item[tax_ids][]'} %>

1 个答案:

答案 0 :(得分:7)

您对collection_select的调用包含一个额外的参数,可以解决问题。 (因为我假设您正在使用* form_for *,所以'line_item'参数会自动包含在内,而您的参数是多余的。)

它应该看起来像这样:

f.collection_select 'tax_ids', @taxes, :id, :name, {:name => 'line_item[tax_ids][]'}

无论如何,这是正确方向的开始。