我有一个表单,用户在其中添加了一个新项目,作为这个项目的一部分,他们选择了一个类别。该项目可以是存款或账单,所以我想要两个不同的列表,他们可以选择的类别,因为他们是分开相同的方式。这是我的分类帐项目和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的格式有关,我只是不知道是什么
您需要为f.select
提供选项。您可以使用options_from_collection_for_select:
<%= f.select :itemcategory_id, options_from_collection_for_select(@bill_categories, 'id', 'name') %>
这将提供将value
设置为@bill_categories
中对象的id
的选项,并且显示的文本将是@bill_categories
中对象的name
属性。