我无法弄清楚让辅助路径发挥作用的魔力。我的用例是:“mydomain / articles / some_slug”用于带有show动作的文章控制器。给定的URL完美无缺。但我无法弄清楚如何让rails的助手适用于这种情况。
routes.rb中:
get '/articles/:slug', to: 'articles#show', as: 'article'
--- or ---
get '/articles/:slug', to: 'articles#show'
--- or changing :slug to :id
铁路路线(此类及其他---或---条件的类似变化):
articles GET /articles/:slug(.:format) articles#show
我得到一个未定义的方法`path_to_article'错误。在这些条件下会发生此错误:
my.html.erb:
<%= path_to_article(locals[:article]) %>
--- or ---
<%= path_to_article(id: locals[:article].slug) %>
--- or ---
<%= path_to_article(slug: locals[:article].slug) %>
但是,这段代码运行正常,但我不喜欢它,这正是我想要避免的:
<a href="/articles/<%= locals[:article].slug %>">
我也试过复数和非插图组合,我可以和几乎任何其他随机的想法,我可以想出或在网上找到。最后,我似乎无法弄清楚如何将轨道识别为'path_to_article()'。
Rails 5.0.2
感谢您的帮助!
答案 0 :(得分:0)
您想使用:
articles_path(locals[:article])
或
articles_path(locals[:article].slug)
取决于你设置的方式
答案 1 :(得分:0)
rails routes
返回:
- 路线名称(如果有)
- 使用的HTTP动词(如果路由不响应所有动词)
- 要匹配的网址格式
- 路线的路线参数
请参阅: http://guides.rubyonrails.org/routing.html#listing-existing-routes
基本上,您应该将 _path 附加到视图中的路径名称以调用路径助手。
在您的情况下,路由名称是 articles ,因此帮助方法是 articles_path 。