Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails路线的前后过滤器/功能_Ruby On Rails_Routing - Fatal编程技术网

Ruby on rails Rails路线的前后过滤器/功能

Ruby on rails Rails路线的前后过滤器/功能,ruby-on-rails,routing,Ruby On Rails,Routing,我有一个想法,我不确定是否已经完成。现在让url搜索引擎友好的开发人员自定义模型类的_param函数。然后他们调用函数以获取elmenet的id 如果我不想为模型而是为字符串创建url呢。假设我为post controller的搜索操作创建链接。url中唯一的变量是搜索字符串。那么我如何才能创建这个搜索页面的搜索引擎优化链接。我知道如何创建链接等,但我的问题是,我想调用这个字符串的函数,如to_param或类似的东西,使搜索引擎优化字符串,也在控制器中执行搜索,我必须再次人性化这个字符串。所以我

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

如果我不想为模型而是为字符串创建url呢。假设我为post controller的搜索操作创建链接。url中唯一的变量是搜索字符串。那么我如何才能创建这个搜索页面的搜索引擎优化链接。我知道如何创建链接等,但我的问题是,我想调用这个字符串的函数,如to_param或类似的东西,使搜索引擎优化字符串,也在控制器中执行搜索,我必须再次人性化这个字符串。所以我想要的是:

在每个视图中,我都不想使用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

正如Heikki所指出的:

您能否为您认为可能需要的内容和预期的输出提供一些伪代码?我无法理解您的要求。添加了一些示例帮助程序。我希望每次我创建与此路由的链接(之前)时都会执行这些帮助程序,并且我有一个与此路由(之后)相关的请求:“环绕整个路由系统,并允许对进入它的内容(URL识别)和来自它的内容(URL生成)进行预过滤和后过滤”