使用带有Awesome嵌套集的form_for

时间:2011-10-16 15:28:56

标签: ruby-on-rails ruby ruby-on-rails-3 nested

我有一个启用了acts_as_nested_set的Comment模型,但是当我尝试执行类似这样的操作时(对于嵌套注释),我收到错误“找不到comment_comments_path”,可能是因为默认路径不适用于Awesome Nested组。我该如何解决这个问题?

            <%= form_for([@comment, @comment.children.build]) do |f| %>

           <%= f.text_area :content, :placeholder=>'What do you think?'%>

           <%= f.submit 'Submit Reply'%>
            <%  end %>

我也试过这个:

            <%= form_for(@comment) do |f| %>

            <% @comment.children.each do |sub|  %>
            <%= f.fields_for :children, sub do |child| %>

            <%= child.text_area :content, :placeholder=>'What do you think?'%>

           <%= f.submit 'Submit Reply'%>
            <% end  %>
            <% end  %>
            <%  end %>

但它没有生成一个文本框供我输入。

1 个答案:

答案 0 :(得分:0)

你非常接近,是的,你必须首先建造它,然后有字段,所以这个:

<% @comment.children.build %>

<%= form_for([@comment]) do |f| %>
  <%= f.fields_for :children do |child| %>
    <%= child.text_area :content, :placeholder=>'What do you think?'%>
    <% end  %>
  <%= f.submit 'Submit Reply'%>
  <% end  %>
<% end  %>

这将包含所有现有孩子的表格+新表格。如果你只想要一个新孩子的表格,那么你会想要这个:

<%= form_for([@comment]) do |f| %>
  <%= f.fields_for @comment.children.build, :children do |child| %>
    <%= child.text_area :content, :placeholder=>'What do you think?'%>
    <% end  %>
  <%= f.submit 'Submit Reply'%>
  <% end  %>
<% end  %>