将正则表达式应用于动态Rails链接

时间:2014-08-01 11:43:02

标签: ruby-on-rails ruby regex gsub

是否可以在Rails链接中应用正则表达式解决方案?

例如,我有这个链接:

venue_news_index_path(sensitive_venue)

产生这个:

/leisure/venuename/news 

我想申请:

^(.*)(\/.*)$

然后gsub

$1#$2

实现这一目标:

/leisure/venuename#/news

1 个答案:

答案 0 :(得分:1)

当您调用_path_url方法时,它只会返回一个字符串,因此您可以根据需要gsub结果。

请注意,由于/leisure/venuename是特定网页上的位置而不是唯一的网址,因此Rails会将其视为转到任何链接/表单/重定向中的#

修改

管理以获得更严格的正则表达式。 .*的问题是它是否会变为斜线。

 path.gsub(/\/[a-zA-Z0-9\-\_]*$/) do |match|
   "##{match}"
 end