【发布时间】:2016-08-22 12:43:24
【问题描述】:
我有一个关于 Rails 关联的问题。 我正在尝试为具有主题的帖子创建评论。 所以我的 routs 文件看起来像这样:
resources :subjects do
resources :post do
resources :comments
end
end
现在我正在尝试在帖子的 show.html.erb 文件中创建一个表单,以便有人可以创建评论。 我已经尝试过这种方法,我在 rails 指南中找到了:
'posts/show.html.erb'
<%= form_for {[@post, @post.comments.build]} do |f| %>
//fill in form
<% end %>
'posts.controller.rb'
def show
@post = Post.find(params[:id])
end
但这给了我一个错误。如果您需要任何其他代码部分,请随时询问。
错误信息
ActionView::Template::Error (undefined method `post_comments_path' for #<#<Class:0x007f9a4429d5e8>:0x007f9a42c01fc8>):
8: <strong>Text:</strong>
9: <%= @post.text %>
10: </p>
11: <%= form_for ([@post, @post.comments.build]) do |f| %>
12: <p>
13: <%= f.label :text %><br>
14: <%= f.text_area :text %>
【问题讨论】:
-
你能分享你的控制台日志吗?
-
添加到我的问题中
-
您在哪一行收到此错误?
-
第 11 行,我将更新错误消息 -> html 标签已应用于消息
-
尝试在您的控制器中构建您的 post.build_comment 在不同的变量中显示操作,并将 url 选项添加到您的 form_for 并给出您的表单将继续提交的方法的路径。
标签: ruby-on-rails ruby-on-rails-4 associations