我在我的rails应用中使用friendly_id作为我的路线。
我想确保数字ID无法访问某个页面。
可以像这样访问页面 - www.myurl.com/myfriendlyidstub
页面不应该像这样访问 - www.myurl.com/12345(12345是myfriendlyidstub的id)
我无法在friendly_id的文档中看到这样做的方法。
所以我正在考虑在我的控制器中添加一个方法来检查param是否为数字
def edit
if params[:id].is_numeric? #I need to know how to write this method
not_found #not_found redirects to a 404
end
#rest of the edit action
end
两个问题 -
如何编写'is_numeric'方法?
这是一种很好的做事方式吗?你能看到任何陷阱吗?
答案 0 :(得分:4)
在将其粘贴到每种方法之前,我会使用before_filter
。
您还可以配置路由segment constraint。
答案 1 :(得分:0)
听起来你只想将用户名作为固定链接在根目录'/'...后面。
config/route.rb
...
match '/:id' => 'controller#show'
...
之后我相信如果你正确设置了它,它应该显示为名称而不是id。
顺便说一句,感谢找到friendly_id,我即将开始为我的项目寻找类似的东西。
如果有帮助,请告诉我。