我有一些代码使用字符串来动态确定要使用的模型类以及find_by()的字段。但是,我很难用这些变量来获取模型实例。具体来说,我有
class Item
include MongoMapper::Document
key :my_variable, String
在我的代码中我有
m = "Item"
f = "my_variable"
我希望能够
i = m.find_by_my_variable( f )
result = i[f]
任何帮助表示赞赏!
答案 0 :(得分:6)
由于您在Rails中(根据类别标记判断),您可以使用:
m = m.constantize
使字符串成为常量,然后这样的内容可以用于查询吗?
m.where("#{f} = ?", some_value)
(编辑)或使用send as ismaelga建议,如果你不想要一个ActiveRecord :: Relation数组对象
答案 1 :(得分:0)
你可以eval(m.capitalize).send("find_by_#{variable_name}", variable_content)
将其资本化只是为了确保它获得大写字母。