我如何猜测在Rails中使用匹配创建的路由助手?

时间:2013-02-13 10:51:22

标签: ruby-on-rails ruby-on-rails-3 routes

我在routes.rb文件中创建了一条路线,如下所示:

match ':controller/:action/:id'

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

undefined method `add_post_path' for ...

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

是否为这样的路线创建了路线助手?我不确定哪种辅助方法可以与这样的匹配规则一起使用。

2 个答案:

答案 0 :(得分:1)

您可以使用以下命名来命名路由:作为参数

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

然后在视图中使用foo_bar_path

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

答案 1 :(得分:0)

如果您有resources :posts,则需要帮助new_post_path 添加新帖子。运行rake routes查看您的应用路线。

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

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

您可以在此Rails guide中了解详情。

当您定义match ':controller/:action/:id'时,您可以设置应用的网址及其参数的格式,但这并不会神奇地定义路线助手。