假设我希望创建一个可以使用 type(string) 和 id(int) 查询所需对象的页面。
/query?type=people&id=1
会来接我
人物查找(1)
whereas
/查询?类型=城市&id=123
会来接我
城市查找(123)
但是,我在如何将字符串转换为所需的模型类方面遇到了问题。
我能想到的唯一方法是
case params[:type]
when 'people'
@object = Person.find(params[:id])
when 'cities'
@object = City.find(params[:id])
end
但是,如果我的模型类型比较多,这个方法就会有很大问题。
有没有更好的办法?
先感谢您,
Try:
klass = params[:type]
klass.singularize.classify.constantize.find(params[:id])
Edit:
@object = params[:type].singularize.classify.constantize.find(params[:id])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)