rails - 如何通过字符串引用模型?

时间:2009-10-02 08:37:09

标签: ruby-on-rails

例如

str_modelname="User"

我想做

str_modelname.find(:first)

找到第一个用户,但当然不会这样做

3 个答案:

答案 0 :(得分:7)

str_modelname.classify.constantize.find(:first)

答案 1 :(得分:2)

有几种方法,其中一种可能使用哈希,例如:

models = {"User" => User, "AnotherModel" => AnotherModel}

然后:

models[name] ? models[name].find(:first) : nil

你为什么需要这个?可能有更好的解决方案,具体取决于您需要做什么。

答案 2 :(得分:1)

我在这段代码中取得了成功,但我不会声称这是最好的方式:

str = "User"
p Kernel.const_get(str).find(:first)

我的基础是this technique