我正在构建一项服务,用户可以在其站点的所有页面上安装插件(例如,通过将其添加到模板中),但是我只想在特定URL或由URL提供的URL模式上运行插件代码网站所有者。
我希望网站所有者能够设置一种简单的URL模式(例如,类似于Cloudflare的方式):
例如,网站所有者可以将网址格式设置为:https://example.com/pages/*/edit
并将此模式保存在数据库中,如下所示:
@url = Url.create string: 'https://example.com/pages/*/edit'
说,然后用户访问网址https://example.com/pages/my-page/edit
,我想将此网址传递回我的应用程序,并以某种方式找到先前使用该特定网址创建的@url
。
Url.find_by_url 'https://example.com/pages/my-page/edit'
然后应返回先前创建的Url
记录。
您将如何去做?
答案 0 :(得分:1)
最终找到了这个答案:https://stackoverflow.com/a/3410431/117554,我像这样适应了滑轨:
Url.find_by_sql(["
select * from urls
where ?
like replace(value, '*', '%')
", url]).first
使用Postgres中的replace
函数。到目前为止似乎工作正常!