0

このrailscastと同様に、ネストされた属性のフォームを作成しようとしています。私のアプリでは、ノードに質問を添付できます。1 つのフォームでノードと質問の両方の属性を設定できるようにしたいと考えています。これはモデルで次のように定義されています。

node.rb

...
has_many :questions
accepts_nested_attributes_for :questions

質問を受け付けるフォームを正確に作成する方法がわかりませんでした。これは現在です:

 <%= f.fields_for @node.questions do |builder| %>
  <%= render 'question_form', f: builder %>    
  <% end %>

次に、質問フォームは関連するフィールドをレンダリングします。

ノードコントローラーは現在、正しく渡される属性に依存しています: nodes_controller.rb

def new
@node = current_user.nodes.build 
//also tried building a question

def create
@node = current_user.nodes.new(params[:node])
@node.save... 
//anything else needed? 

質問を正しく作成するためのフォームを取得するにはどうすればよいですか?

4

1 に答える 1

0
@node = current_user.nodes.new(params[:node])

する必要があります

@node = current_user.nodes.create(params[:node])

current_user 変数が初期化され、フォームから保存されるすべての属性を attr_accessible を使用して「一括割り当て可能」としてマークしたと仮定すると、機能するはずです。

このnewメソッドは、DB に保存せずにオブジェクトを作成するだけであることに注意してください。createDBに保存します。

于 2012-07-27T15:48:05.780 に答える