gpt4 book ai didi

ruby-on-rails - 带有字符串输入的引用模型

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:58 26 4
gpt4 key购买 nike

假设我希望创建一个页面,该页面可以使用 type(string) 和 id(int) 查询所需的对象。

/query?type=people&id=1

会接我

Person.find(1)

鉴于

/query?type=cities&id=123

会接我

City.find(123)

但是,关于如何将字符串转换为所需的模型类,我遇到了问题。

我能想到的唯一办法是

case params[:type]
when 'people'
@object = Person.find(params[:id])
when 'cities'
@object = City.find(params[:id])
end

但是,如果我有更多类型的模型,这种方法就会有很大的问题。

有没有更好的办法?

提前谢谢你,

最佳答案

尝试:

klass = params[:type]
klass.singularize.classify.constantize.find(params[:id])

编辑:

@object = params[:type].singularize.classify.constantize.find(params[:id])

关于ruby-on-rails - 带有字符串输入的引用模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9462785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com