我在routes.rb
文件中创建了一条路线,如下所示:
match ':controller/:action/:id'
我尝试从我的视图中调用add_posts_path()
和add_post_path()
,在这两种情况下,我都收到了类似的错误消息:
undefined method `add_post_path' for ...
我已尝试在resources :posts
声明之前和之后声明我的匹配路线。
是否为这样的路线创建了路线助手?我不确定哪种辅助方法可以与这样的匹配规则一起使用。
答案 0 :(得分:1)
您可以使用以下命名来命名路由:作为参数
match '/foo/bar', to: 'foo#bar', as: 'foo_bar'
然后在视图中使用foo_bar_path
答案 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'
时,您可以设置应用的网址及其参数的格式,但这并不会神奇地定义路线助手。