进行了一些搜索,发现了很多类似的问题,但没有什么可以回答我正在寻找的东西。对Rails来说很新,并且有一个资源:
resources :articles do
collection do
get 'search/:query' => "articles#search"
end
end
我通过link_to上的Rails API阅读并构建了这个关于如何创建路径“search /:query”链接的最佳猜测 -
<%= link_to "Search for recipes", search_articles_path(:query => "waffles") %>
但是这会创建指向 / articles / search?query = waffles 的链接,而不是像我希望的那样创建 / articles / search / waffles 的链接。是否有一种简单的方法来修改它,这样它会这样工作?我也在考虑这很难的可能性,因为它不是很“Railsy”,我应该研究其他方法来映射它。
编辑:我很确定我可以通过使用匹配而不是资源来实现这一点,但怀疑使用资源会更加惯用并且更易于管理。
答案 0 :(得分:2)
类似于Hitesh的回答:
resources :articles do
get 'search/:query' => "articles#search", :on => collection, :as => :search
end
但是要构建link_to帮助器,请执行以下操作:
<%= link_to "Search for recipes", search_articles_path('waffles') %>
在一个演示应用程序上试过这个并且它工作正常。链接看起来像:
http://localhost:3000/articles/search/waffles
答案 1 :(得分:1)
resources :articles do
collection do
get 'search/:query' => "articles#search",:as=>search_articles_path
end
end
如果不能正常使用,请在下面使用
<%= link_to "Search for recipes", "/search/waffles") %>