也许我很愚蠢,但 Rails 提供了这种漂亮的语法来生成 URL,如下所示:
url_for([user, comment]) # => /users/1/comment/1
通过:edit
允许我创建这样的东西:
url_for([:edit, user, comment]) # => /users/1/comment/1/edit
但是有什么办法可以做到吗?
url_for([:new, user, comments]) # => NoMethodError: undefined method `new_user_comments_url'
更新:添加了更多信息。
我的路线.rb:
resources :users do
resources :comments
end
resources :posts do
resources :comments
end
我的问题是,我不能使用 Rails 自动生成的 url helper ( user_comments_url
),因为我正在共享用户评论和发表评论的视图。
我的问题有两种解决方法(但没有人觉得像“Rails”方式):
向视图添加逻辑,例如一些 if 条件。
定义我自己的 url 助手,例如
new_parent_comment(user_or_blog)
.