0

与此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
@node = current_user.nodes.new(params[:node]) 

应该

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

假设CURRENT_USER变量初始化,您标记的所有属性的形式被保存为“质量分配”使用attr_accessible,它应该工作

请注意,new方法只是创建一个对象而不将其保存到数据库。 create将其保存到数据库。

+0

对不起,我在下面的代码,我更新了上面。节点被创建,而不是问题。 – 2012-07-27 15:52:51

+0

请添加您的控制器正在获取的请求params(您应该将它们放到您的development.log文件或服务器控制台中,以便执行'create'动作的请求。 – 2012-07-27 17:12:54