假设我想制作一个页面,可以使用类型(字符串)和id(int)查询所需的对象。使用字符串输入引用模型
/查询?类型=人& ID = 1
会接我
Person.find的(1)
而
/阙RY?类型=城市& ID = 123
会接我
City.find(123)
不过,我的问题是如何转换字符串到所需模型类。
我能想到的唯一的办法就是
case params[:type]
when 'people'
@object = Person.find(params[:id])
when 'cities'
@object = City.find(params[:id])
end
然而,这种方法会很成问题,如果我有更多类型的模型。
有没有更好的方法?
谢谢你在前进,
如果尝试自动执行此操作,您可以在情况最终在那里攻击者可以发送“/query?type = TOP_SECRET_TABLE&id = 1“,并获取他不应该被允许访问的信息。谨防你想要的东西。 – Sebi 2012-02-27 09:44:21
它实际上是用于标记对象的ajax。所以我的下一步就像@ object.tags << tag。但想要保持这个问题很简单,所以这样问。不管怎么说,多谢拉! – rickypai 2012-02-27 09:56:50