出现以下错误:帖子中的NoMethodError#show

时间:2017-01-02 03:47:00

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2

我一直收到以下错误。我正在努力开发自己的博客平台,以此来让我学习并变得更好。

错误:

  

显示/home/ubuntu/workspace/app/views/posts/show.html.erb在哪里   第36行提出:

     

未定义的方法`post_comments_path'for   <#:0x007f88f0044248>你的意思是? posts_path

应用/视图/帖/ show.html.erb

<h2>Add a comment:</h2>
<%= form_for([@post, @post.comments.build]) do |f| %>
  <div class="field">
    <%= f.label :author %><br />
    <%= f.text_field :author %>

配置/ routes.rb中

Rails.application.routes.draw do
  get 'welcome/index'

  resources :posts
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root :to => "posts#index"
end

4 个答案:

答案 0 :(得分:0)

您可能需要将其更新为

的routes.rb

resources :posts do
  resources :comments
end

执行此操作后,您应该可以在控制台中使用rake routesrails routes查看新路线。

答案 1 :(得分:0)

您没有comments资源嵌套在posts资源中(或根本没有),因此您无法使用帖子中的评论创建网址。

您需要先定义评论路线,然后才能为其生成网址。

如果您想将它们嵌套在posts中,则应修改当前的resources :posts行:

resources :posts do
  resources :comments
end
路由文件中的

resources生成帮助方法,Rails使用这些方法为模型生成URL,在本例中为post_comments_path

答案 2 :(得分:0)

您必须编辑对routes.rb文件的以下更改,然后重试

   resources :posts do
      resources :comments
    end

答案 3 :(得分:0)

您的路线文件不正确。将以下代码放在routes.rb

onCaptureCompleted()