Rails中的自定义路由

时间:2009-07-24 17:57:32

标签: ruby-on-rails ruby routes

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

http://myapp.com/search/a_very
http://myapp.com/search/nice_set
http://myapp.com/search/of_tags

或者至少像这样:

http://myapp.com/articles/search/a_very
http://myapp.com/articles/search/nice_set
http://myapp.com/articles/search/of_tags

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

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

2 个答案:

答案 0 :(得分:6)

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

map.tag_search "search/:tags", :controller => "tags", :action => "search"

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

的形式提供

我建议阅读Rails Guide on Routing - 它涵盖了这个场景和许多其他场景。

答案 1 :(得分:6)

Rails 3有更新的语法。

match 'search/:tags' => 'tags#search' :as => 'tag_search'