Rails路由的过滤器/功能之前和之后

时间:2011-01-16 12:24:16

标签: ruby-on-rails routing

我有一个想法,我不确定是否已经完成。现在要使url搜索引擎友好的开发人员自定义模型类的to_param函数。然后他们调用to_s函数来获取elmenet的id。

如果我想为非模型而不是字符串创建URL,该怎么办?让我们说我为帖子控制器的搜索操作创建链接。 url中唯一的变量是search_string。那么我该如何为这个搜索页面创建seo链接。我知道如何创建链接等等,但我的问题是,我想调用此字符串上的函数,如to_param或类似的东西来制作seo字符串,也在控制器中执行搜索我必须再次人性化这个字符串。所以我想要的是:

在每个视图中,我都不想使用urlizing方法使其友好

在每个控制器中,我都不想调用任何函数来再次将字符串变回人性化,这应该由路由器来完成

在路由器中:

match 'search/:string' => 'Post#search', :as => :search, before => some_before_router_helper_function, after => some_after_router_helper_function

在这些辅助函数中,我将要做的是将参数化我想要的任何参数,然后我将再次将任何参数化为人类化

路由器助手之前/之后的示例:

def some_before_router_helper_function
  string = string.underscore.dasherize
end

def some_after_router_helper_function
  param[:string] = param[:string].undasherize.un_underscore
end

1 个答案:

答案 0 :(得分:0)