0

这是一个 Ruby 问题,尽管我在 Rails 上下文中使用它。

我需要调用一个方法,在该方法中我使用字符串变量为其键(参数名称)赋值。

例如我得到:

MyRailsModelClass.where(key_of_my_method: my_value)

我想让这更有活力。我可以像这样“my_rails_model_class”.classify 创建一个 MyRailsModelClass

我需要使 key_of_my_method 更具动态性并将其替换为变量。我正在考虑类似的事情:

"my_rails_model_class".classify.where(my_key.to_sym => my_value)

有人有线索吗?谢谢

4

1 回答 1

0

实际上,分类方法是不够的。您需要在应用任何类方法之前进行常量化。

我以这种方式解决了它(因为它更有效;而分类确实调用了更多方法:camelize(singularize(table_name.to_s.sub()):

"my_rails_model_class".camelize.constantize.where("my_key".to_sym == my_value).first

但你可以这样做更长的方式:

"my_rails_model_class".classify.constantize.where("my_key".to_sym == my_value).first
于 2013-01-14T16:18:08.917 回答