Rails - 如何从一个模型调用值到另一个模型的形式

问题描述:

我正在开发一些应用程序,我有2个模型。我创建类别名称和问题的类别。类别has_many问题和问题belongs_to类别。
我已将category_id添加到问题模型中。Rails - 如何从一个模型调用值到另一个模型的形式

现在我需要采取所有的Category_names并将它们显示在我创建问题的表单中,以便用户可以选择在哪个category_name中保存问题。

我试过这样的第一行代码但不工作。

<%= f.input :category_id, Category.all.map(&:name) %> 
<%= f.input :question_name, wrapper: :vertical_text_input, as: :text %> 
<%= link_to "Markdown help", "http://assemble.io/docs/Cheatsheet-Markdown.html", target: "_blank", class: "right" %> 
<%= f.input :answer %> 
<%= f.input :image, as: :attachinary %> 

问题:如何显示在表格所有的类别名称,我创造新的问题?

你可能想使用一个选择框,并使用collection select轨帮手:

f.collection_select(:category_id, Category.all, :id, :name) 
+0

它可以工作,但是当我打开这个表单的页面时,直到我刷新页面才显示collection_select。然后加载选择字段。不知道为什么会发生这种情况.. – RubyDigger19

您也可以使用这种方式。

<%= f.select :category_id, Category.all.map(&:name), {prompt:"Choose Category"}%> 

@Jhon建议。

<%= f.select :category_id, Category.pluck(:name), {prompt:"Choose Category"}%> 
+1

'Category.pluck(:name)'比上面的要快 –