ruby-on-rails – rails 3 app中没有方法错误
发布时间:2020-12-16 21:03:09 所属栏目:百科 来源:网络整理
导读:我收到这个错误: undefined method `post_comments_path' for ##Class:0x1052a6e98:0x1052a4be8Extracted source (around line #27):24: 25: % end%26: 27: % form_for [@post,Comment.new] do |f| %28: p29: 30: %= f.label :name,"Author" %br / 我的路线
我收到这个错误:
undefined method `post_comments_path' for #<#<Class:0x1052a6e98>:0x1052a4be8> Extracted source (around line #27): 24: 25: <% end%> 26: 27: <% form_for [@post,Comment.new] do |f| %> 28: <p> 29: 30: <%= f.label :name,"Author" %><br /> 我的路线: Myblog::Application.routes.draw do root :to => 'posts#index' resources :comments resources :posts,:has_many => :comments post.rb class Post < ActiveRecord::Base has_many :comments end comment.rb class Comment < ActiveRecord::Base belongs_to :post end 意见/职位/ show.html.erb <p id="notice"><%= notice %></p> <p> <b>Title:</b> <%= @post.title %> </p> <p> <b>Body:</b> <%= @post.body %> </p> <h2>Comments</h2> <% @post.comments.each do |c|%> <p> <b><%=h c.name %>said: </b> <%= time_ago_in_words(c.created_at)%> ago </p> <p> <%= c.body%> </p> <% end%> <% form_for [@post,Comment.new] do |f| %> <p> <%= f.label :name,"Author" %><br /> <%= f.text_field :name %><br /> <%= f.label :body,"Comment Description" %><br /> <%= f.text_area :body %> </p> <p> <%= f.submit "Add Comment" %> </p> <% end %> <%= link_to 'Edit',edit_post_path(@post) %> | <%= link_to 'Back',posts_path %> 困惑,因为我没有看到任何对post_comments_path的引用? 耙路线: root /(.:format) {:action=>"index",:controller=>"posts"} comments GET /comments(.:format) {:action=>"index",:controller=>"comments"} comments POST /comments(.:format) {:action=>"create",:controller=>"comments"} new_comment GET /comments/new(.:format) {:action=>"new",:controller=>"comments"} edit_comment GET /comments/:id/edit(.:format) {:action=>"edit",:controller=>"comments"} comment GET /comments/:id(.:format) {:action=>"show",:controller=>"comments"} comment PUT /comments/:id(.:format) {:action=>"update",:controller=>"comments"} comment DELETE /comments/:id(.:format) {:action=>"destroy",:controller=>"comments"} posts GET /posts(.:format) {:action=>"index",:controller=>"posts"} posts POST /posts(.:format) {:action=>"create",:controller=>"posts"} new_post GET /posts/new(.:format) {:action=>"new",:controller=>"posts"} edit_post GET /posts/:id/edit(.:format) {:action=>"edit",:controller=>"posts"} post GET /posts/:id(.:format) {:action=>"show",:controller=>"posts"} post PUT /posts/:id(.:format) {:action=>"update",:controller=>"posts"} post DELETE /posts/:id(.:format) {:action=>"destroy",:controller=>"posts"} 解决方法
您没有通过路由指定post_comments_path.您不应该在路由中使用:has_many(仅限模型),而是嵌套它们.这应该做的伎俩:
resources :posts do resources :comments end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |