Ruby on rails rails:需要一些集合的解释吗

Ruby on rails rails:需要一些集合的解释吗,ruby-on-rails,collections,selection,Ruby On Rails,Collections,Selection,我尝试使用collection\u 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 :

我尝试使用collection\u 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
我不知道如何设置collection_select的参数,所以我的行'5'肯定是错误的。其他文档和示例都很混乱,有谁能解释一下我如何使用collection\u select完成这项工作吗?

当您使用
form.collection\u select
时,您应该省略object,例如


确保您获得的地址类型是正确的

使用以下命令:

@addresses = AddressType.all


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

地址类型=您的型号

名称=模型字段名称

@addresses=包含AddressType表中的“Home”、“Work”和“Other”的集合

id=选项的值属性


名称=显示选项的属性

谢谢您的帮助。我可以更好地理解collection_select的工作原理。我得到了一个后续问题,当我在addresstype打开的情况下在我的新地址页面上点击“创建”按钮后,错误显示unknown attribute:type,但我肯定将它包含在它的模型中?
= f.collection_select (:type, AddressType.all, :id, :name)
form.collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
@addresses = AddressType.all


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