0

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

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做了一些实验,发现那里不可能避免 action?parameter=value 构造。我还试图避免地址中的任何“数字内容”,例如在操作之间发送 id 等。无论如何,我只是一个初学者,我完全不知道我应该挖掘哪个方向。

它应该是一些路线魔法吗?如何将这种魔力应用到我的示例中?我是否违反了“配置约定”范式?

4

2 回答 2

6

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

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

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

我建议阅读Rails Guide on Routing - 它涵盖了这种情况和许多其他情况。

于 2009-07-24T18:12:23.133 回答
6

Rails 3 具有更新的语法。

match 'search/:tags' => 'tags#search' :as => 'tag_search'
于 2011-12-28T20:27:21.537 回答