1

collection_selectを使ってドロップダウンリストを表示させてみました。ただし、しばらく検索した後でも、このメソッドのパラメーターを設定する方法がわかりません。

class Entry < ActiveRecord::Base
    has_many :addresses
    attr_accessible :email, :first_name, :last_name
end
class Address < ActiveRecord::Base
    belongs_to :entry
    has_one :address_type
    attr_accessible :type, :city, :state, :street, :zip
end

class AddressType < ActiveRecord::Base
    belongs_to :address
    attr_accessible :name
end

そして、住所ごとにモデル「AddressType」から選択した「AddressType」という名前のドロップダウンリストを表示したいと思います。「AddressType」の値は、seeds.rb で作成される「Home」、「Work」、および「Other」のみです。_form コードは次のとおりです。

.form-inputs
  5     = f.collection_select (:AddressType, :name, AddressType.all, :id, :AddressType)           
  6     = f.input :street
  7     = f.input :city
  8     = f.input :state
  9     = f.input :zip

collection_select のパラメーターを設定する方法がわからないので、私の行 '5' は間違いなく間違っています。他のドキュメントと例は非常に紛らわしいので、collection_select でどのように行うことができるか説明できますか?

4

2 に答える 2

1

collection_select(オブジェクト、メソッド、コレクション、value_method、text_method、オプション = {}、html_options = {})

= f.collection_select (:type, AddressType.all, :id, :name)

を使用するときは、 objectform.collection_select省略してください。

form.collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
于 2013-02-26T08:10:29.797 に答える
1

取得するアドレスの種類に問題がないことを確認してください。

以下を使用します。

@addresses = AddressType.all


f.collection_select ("address_type", "name", @addresses, "id", "name")

どこ、

AddressType = あなたのモデル、

name = モデル フィールド名、

@addresses = AddressType テーブルの「自宅」、「職場」、および「その他」を含むコレクション、

id = オプションの値属性

name = オプションの表示属性

于 2013-02-26T08:22:28.757 に答える