-2

我在routes.rb文件中创建了这样的路由:

match ':controller/:action/:id'

我尝试调用add_posts_path()add_post_path()从我的角度来看,在这两种情况下我都收到了类似的错误消息:

undefined method `add_post_path' for ...

我尝试在声明之前和之后声明我的匹配路线resources :posts

是否为此类路线创建了任何路线助手?我不确定在这样的匹配规则中可以使用哪些辅助方法。

4

2 回答 2

1

您可以使用 :as 参数命名路由

match '/foo/bar', to: 'foo#bar', as: 'foo_bar'

然后在您的视图中使用 foo_bar_path

http://guides.rubyonrails.org/routing.html#naming-routes

于 2013-02-13T11:13:28.303 回答
0

如果你有resources :posts,你有一个助手new_post_path添加新帖子。运行rake routes以查看您的应用程序路由。

add_post_path不遵循 Rails 资源的路由约定,如果需要,必须添加自定义方法:

resources :posts do
  get :add, :on => :collection
end

您可以在此Rails 指南中了解更多相关信息。

当您定义 时match ':controller/:action/:id',您设置应用程序的 url 及其参数的格式,但这不会神奇地定义路由助手。

于 2013-02-13T11:24:55.097 回答