0

ユーザーが新しいアイテムを追加するフォームがあり、その一環として、ユーザーはアイテムのカテゴリを選択します。保証金でも請求書でもかまいませんが、同じように分割されているので、カテゴリごとに2つの異なるリストから選択できるようにします。これが私の元帳アイテムとアイテムカテゴリのモデルです

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') %>

これにより、のオブジェクトにvalue設定されたオプションが提供され、表示されるテキストはのオブジェクトのプロパティになります。id@bill_categoriesname@bill_categories

于 2013-01-20T03:54:30.837 に答える