Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 嵌套路由:Rails 3_Ruby On Rails 3_Rails Routing - Fatal编程技术网

Ruby on rails 3 嵌套路由:Rails 3

Ruby on rails 3 嵌套路由:Rails 3,ruby-on-rails-3,rails-routing,Ruby On Rails 3,Rails Routing,我要走这条特殊的嵌套路线上班,真是费了好大劲。这很奇怪,因为我已经迁移了许多路由到新的Rails3语法,而这一条似乎不起作用。来吧 我有一个名为“piece”的对象,它有一个嵌套对象,名为“piece\u comment”。下面是routes.rb的外观: resources :piece do resources :piece_rating, :as => :rating resources :piece_comments, :as => :comments end 下面

我要走这条特殊的嵌套路线上班,真是费了好大劲。这很奇怪,因为我已经迁移了许多路由到新的Rails3语法,而这一条似乎不起作用。来吧

我有一个名为“piece”的对象,它有一个嵌套对象,名为“piece\u comment”。下面是routes.rb的外观:

resources :piece do
  resources :piece_rating, :as => :rating
  resources :piece_comments, :as => :comments
end
下面是piece/show.html.erb的外观,以及提交一条评论的表单:

<% @piece_comment = PieceComment.new(:piece_id => @piece.id, :user_id => current_user.id) %>

<%= form_for [@piece, @piece_comment] do |f| %>
  <%= f.hidden_field 'piece_comment', 'user_id' %>
  <%= f.hidden_field 'piece_comment', 'piece_id' %>
  <%= f.text_area 'piece_comment', 'comment' %>
  <%= f.submit_tag 'Post' %>
<% end %>
@piece.id,:user\u id=>current\u user.id)%>
现在,奇怪的是,“form_for”行触发了以下错误:

未定义的方法'piece\u piece\u comments\u path'#
我的路由文件中的
:as
是否应该将其发送到工件注释路径,而不是工件注释路径?如果我将其更改为
:as=>:foobar
或其他内容,则会得到相同的错误。因此,显然routes文件似乎无法正常工作。(奇怪的是,评级路线的行为似乎很好。)


有没有关于路由可能有什么问题的想法?

尽管我不确定这是否是问题所在,但是
routes.rb中的资源应该是复数的。尝试:

resources :pieces do
  resources :piece_ratings, :as => :ratings
  resources :piece_comments, :as => :comments
end
使用
rake routes
查看由
routes.rb
生成的路由名称

resources :pieces do
  resources :piece_ratings, :as => :ratings
  resources :piece_comments, :as => :comments
end