ric*_*pai 12 ruby ruby-on-rails
让我们说我希望创建一个页面,可以使用类型(字符串)和id(int)查询所需的对象.
/查询?类型=人&ID = 1
会接我的
Person.find的(1)
而
/查询?类型=城市&ID = 123
会接我的
City.find(123)
但是,我在如何将字符串转换为所需的模型类方面存在问题.
我能想到的唯一方法是
case params[:type]
when 'people'
@object = Person.find(params[:id])
when 'cities'
@object = City.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)
但是,如果我有更多类型的模型,这种方法会很成问题.
有没有更好的办法?
先感谢您,
Sye*_*lam 42
尝试:
klass = params[:type]
klass.singularize.classify.constantize.find(params[:id])
Run Code Online (Sandbox Code Playgroud)
编辑:
@object = params[:type].singularize.classify.constantize.find(params[:id])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9082 次 |
| 最近记录: |