rails检查url是否以数字结尾

时间:2017-03-18 19:03:55

标签: ruby-on-rails regex ruby-on-rails-3 ruby-on-rails-5 rails-routing

我正在尝试创建在删除person对象后触发的redirect_to :back。在触发删除对象代码之前,用户可以有几个页面。如果它们来自person#show页面,我想重定向到名为admin_persons_path的路线。如果它们来自任何其他页面,我只希望将用户重定向回他们所在的页面。人员#show页面的网址结构为localhost:3000/admin/persons/[some_id_number]。我正在尝试编写读取引用URL的代码并相应地重定向。我正在尝试做类似的事情:

if request.referer.end_with?(some regular expression)
    redirect_to :back
else
    redirect_to admin_persons_path
end

问题是我不认为end_with?方法可以接受正则表达式,因为当我用正则表达式尝试它时我得到错误:

TypeError: no implicit conversion of Regexp into String

如何让它发挥作用?

请注意,使用redirect_back(fallback_location: admin_persons_path)无效,因为推荐人在技术上存在。如果有一个内置的方法可以实现我想要的东西,我就不知道它了。

1 个答案:

答案 0 :(得分:0)

检查此示例

url =“http://www.example.com/articles?page=2

def last_element_for_url(url)
  if /[0-9]/.match(a[a.length-1]).to_a.length > 0
    true
  else
    false
  end
end

对于rails,我们可以设置 url = request.original_url ,然后上面的方法将返回true或false,具体取决于url。