0
例えば、私はproduct
モデルを持っています。各製品にProductType
という名前のtype
があります。今私は製品を作りたいと思う。レール:ユーザが選択するサブモデルを含むform_for
がここにスリム使用して、私の単純な形式です:私はこのフォームに必要
= form_for @product, url: product_path, :html => {:method => post} do f
= f.label :name
= f.text_field :name
= f.submit 'Create'
、いずれかを選択することができ、製品(ProductType
からロード)し、ユーザーのすべての種類をリストドロップダウンリストがあります。どのように私は
感謝そんなに。もう少し質問があります。私の製品では、私は 'type_id'と' type_name'という2つのフィールドを持っています(クエリ 'ProductType'テーブルを防ぐため)。 'form_for'を理解し、' Product''から 'Product'テーブルのフィールドに' id'と 'name'の両方をそれぞれ送る方法を教えてください。 (したがって、idから名前を取得するために 'ProductType'を再度照会する必要はありません)。ありがとう –
私は誰もがそれから恩恵を受けることができるように、別の質問としてこれを投稿することをお勧めします。つまり、 'Product'モデルの' before_save'コールバックを使用して 'name'を設定することをお勧めします。 –
ともう1つのことをご希望の場合は、別の投稿で詳しいことができます。ドキュメントで読むと、 'collection_select(:post、:author_id、Author.all、:id、:name_with_initial、prompt:true)'のようなものが使われます。だから、私の場合は 'f.collection_select:product、:type、ProductType.all、:name、:id'でなければなりません。しかし、私がこれをすると、エラー: 'undefined method' merge for:name:Symbol'を満たします。ありがとう –