【发布时间】:2012-02-06 15:39:49
【问题描述】:
让这条特殊的嵌套路由正常工作,我正忙得不可开交。这很奇怪,因为我一直在将许多路由迁移到新的 Rails 3 语法,尤其是这一个似乎不起作用。来了。
我有一个名为“piece”的对象,它有一个名为“piece_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 %>
现在,奇怪的是我收到了由“form_for”行触发的以下错误:
undefined method `piece_piece_comments_path' for #<#<Class:0x007f80ec732a48>:0x007f80ec737ae8>
我的路由文件中的:as 不应该将其发送到piece_cmets_path,而不是piece_piece_cmets_path?如果我将其更改为:as => :foobar 或其他内容,我会得到同样的错误。很明显,路由文件似乎无法正常工作。 (奇怪的是,评级路线的行为似乎很好。)
关于路由可能有什么问题的任何想法?
【问题讨论】:
标签: ruby-on-rails-3 rails-routing