Ruby on rails Can';t在PostRails中创建评论表单
我试图在rails中的文章下创建一个评论框/表单,但它不断引发一个错误,称为unknown attribute:post_id 我的表格代码Ruby on rails Can';t在PostRails中创建评论表单,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我试图在rails中的文章下创建一个评论框/表单,但它不断引发一个错误,称为unknown attribute:post_id 我的表格代码 <%= form_for ([@post, @post.comments.build]) do |f| %> <p> <%= f.label :commenter %> <br> <%= f.text_field :commenter %> </p> <p> <%=
<%= form_for ([@post, @post.comments.build]) do |f| %>
<p>
<%= f.label :commenter %> <br>
<%= f.text_field :commenter %>
</p>
<p>
<%= f.label :body %> <br>
<%= f.text_area :body %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
这会引起一个错误
<%= form_for ([@post, @post.comments.build]) do |f| %>
说出未知属性:post_id
谢谢大家
更新错误:未定义的方法“posts”
<tr>
<td><%= comment.commenter %></td>
<td><%= comment.body %></td>
<td><%= comment.posts %></td>
<td><%= link_to 'Show', comment %></td>
<td><%= link_to 'Edit', edit_comment_path(comment) %></td>
<td><%= link_to 'Destroy', comment, method: :delete, data: { confirm: 'Are you sure?' } %></td>
在
comments
表中似乎没有导致错误的post\u id
列
查看您的代码,我猜您希望在Post
和Comment
模型之间建立1-M关系
确保模型中的关系设置正确,如下所示:
class Post < ActiveRecord::Base
has_many :comments
## ...
end
class Comment < ActiveRecord::Base
belongs_to :post
## ...
end
在此运行之后rake db:migrate
更新
我得到了未定义的方法“post\u comments\u path”
为了解决上述问题,您应该在routes.rb中嵌套路由
resources :posts do
resources :comments
end
更新2
改变
<td><%= comment.posts %></td>
到
注意单数post
而不是复数post
您也可以使用addpostedtocomments
,但在创建Post引用时最好使用Ref
。这将添加一个带有索引的post\u id
。重新启动rails服务器。同样的问题,我所做的是rails生成migration AddPostedToComments post\u id:integer,这清除了第一个错误,但现在我得到了一个未定义的方法“post\u comments\u path”,我一直在玩弄,它仍然不起作用。我认为这与我的联想有关,对吗?类Postresources :posts do
resources :comments
end
<td><%= comment.posts %></td>
<td><%= comment.post %></td>