下拉菜单中包含来自其他模型的值

Syl*_*Syl 9 ruby-on-rails foreign-keys drop-down-menu

我有属于收藏品的产品.集合只是一个名称.产品有collection_id.

在我用于创建和编辑产品的_form视图中,我想要一个带有所有集合名称的下拉菜单.

问题,似乎没有附加到form.for的选择方法,我试图使用:

select(method,choices,options = {},html_options = {})

从文档但我不明白.我必须写一个方法来创建一个表单?有哪些选择,有两种选择?两个参数应足以填充<option>标记.

我怎么能有一个下拉菜单让我通过集合名称为我的产品分配一个集合?

Pan*_*kos 21

您可以使用集合选择,首先确保您的模型已正确设置:

class Product
  belongs_to :collection
end

class Collection
  has_many :products
end
Run Code Online (Sandbox Code Playgroud)

然后将集合选择添加到您的视图:

<%= collection_select(:product, :collection_id, Collection.all, :id, :name) %>
Run Code Online (Sandbox Code Playgroud)

您也可以在此处阅读文档.

  • 这里只是一个额外的注释,实际的方法名称是"collection_select",无论模型名称如何,这两个部分都不相关,尽管它可能出现在这里. (4认同)