与此railscast类似,我正在尝试为嵌套属性创建表单。在我的应用程序中,节点可以附加问题。我希望一个表单能够为节点和问题设置属性。这在模型中定义:
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?
如何让表单成功创建问题?
答案 0 :(得分:0)
@node = current_user.nodes.new(params[:node])
应该是
@node = current_user.nodes.create(params[:node])
假设current_user变量已初始化,并且您已使用attr_accessible将所有从表单保存的属性标记为“mass assignable”,它应该可以正常工作
请注意,new
方法只创建一个对象而不将其保存到数据库中。 create
将其保存到数据库。