0

我有一个表单,用户可以在其中添加一个新项目,作为其中的一部分,他们为该项目选择一个类别。该项目可以是存款或账单,所以我想要两个不同的列表,他们可以从类别中选择,因为它们以相同的方式拆分。这是我的 ledgeritem 和 itemcategory 模型

class Ledgeritem < ActiveRecord::Base
  attr_accessible :amount, :bankaccount_id, :deposit, :itemcategory_id, :name, :processed, :transactiondate

  attr_accessor           :balance
  attr_accessible         :balance

  belongs_to  :bankaccount 
  belongs_to  :itemcategory

end

class Itemcategory < ActiveRecord::Base
  attr_accessible :deposit, :itemcategory_id, :name, :user_id

  has_many  :ledgeritems
end

我的控制器中有这个。我最初在我的模型中使用它,但将其移至控制器以查看是否是问题所在。

@bill_categories = Itemcategory.all.where("deposit = 0")
@deposit_categories = Itemcategory.all.where("deposit = 1")

这就是我在表单中使用它的方式

<%= f.label :itemcategory_id %><br />
<%= f.select :itemcategory_id, @bill_categories %>

这是我得到的错误

can't convert Symbol into Integer

我很确定这与我的 f.select 的格式有关,我只是不知道是什么。

4

1 回答 1

1

您需要为f.select. 您可以为此使用options_from_collection_for_select

<%= f.select :itemcategory_id, options_from_collection_for_select(@bill_categories, 'id', 'name') %>

这将提供对 in 中的对象进行value设置的选项,并且显示的文本将是in 中对象的属性。id@bill_categoriesname@bill_categories

于 2013-01-20T03:54:30.837 回答