Rails中的自定义路由

gmi*_*ile 0 ruby routes ruby-on-rails

我正在尝试在我的网站上创建一些不错的链接.我刚才正在通过标签创建搜索,我想知道是否可以创建这样的好路线:

http://myapp.com/search/a_very
http://myapp.com/search/nice_set
http://myapp.com/search/of_tags
Run Code Online (Sandbox Code Playgroud)

或者至少像这样:

http://myapp.com/articles/search/a_very
http://myapp.com/articles/search/nice_set
http://myapp.com/articles/search/of_tags
Run Code Online (Sandbox Code Playgroud)

我已经用link_for做了一些实验,并且发现在那里不可能避免动作?参数=值构造.我也试图避免地址中的任何"数字东西",比如在动作之间发送ID等等.无论如何,我只是一个初学者而且我完全不知道我应该去哪个方向.

它应该是一些神奇的路线吗?如何将这种魔力应用于我的榜样?我是在经营"配置惯例"范式吗?

Gre*_*ell 6

这不应该需要太多的"魔力"; 这是一种非常标准的路线.你可以这样做(在routes.rb中)

map.tag_search "search/:tags", :controller => "tags", :action => "search"
Run Code Online (Sandbox Code Playgroud)

以上假设您有一个带有搜索操作的标签控制器.在该操作中,您的URL末尾将以params [:tags]的形式提供.

我建议阅读路由中Rails指南 - 它涵盖了这个场景和许多其他场景.


nsl*_*cum 6

Rails 3具有更新的语法.

match 'search/:tags' => 'tags#search' :as => 'tag_search'
Run Code Online (Sandbox Code Playgroud)