2016-04-23 9 views
1

私はいくつかのアプリケーションで作業しており、2つのモデルがあります。カテゴリ名と質問を作成するカテゴリ。カテゴリhave_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 %> 

QUESTION:どのように私は、新しい質問を作成し、フォーム内のすべてのカテゴリー名を表示するには?

答えて

2

あなたはしたく選択ボックスを使用してcollection selectレールのヘルパーを使用することがあります。

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

これは動作しますが、このフォームがあるページを開くと、ページを更新するまでコレクションの選択が表示されません。その後、selectフィールドをロードします。どうしてこれが起こっているのか分かりません.. – RubyDigger19

0

また、あなたがこの方法を使用することができます。

<%= 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)'が上記より速いです –

関連する問題