希望你们一切都好!
我有一个一般性的询问,我想知道是否有善良的灵魂可以提供帮助?目前这确实是一个好奇的问题,但我觉得它可能是未来非常有用的信息片段。
是否可以编写一个可以传递表名和属性(列)名称并对其执行操作的方法?我想这种方法的主要用途是在对表进行重复操作时保持代码干燥。
作为一个例子(虽然完全是一个玩具例子)假设我有一个方法:
def switch(table_name, column_name)
#do some operation on table_name.column_name
end
我已经弄清楚如何通过执行以下操作来访问表:
def model_for_table(table_name)
table_name.to_s.classify.constantize
end
这将采用 underscored_lowercase_string 并返回表名,这样model_for_table("registered_user").find(1)
虽然在表名可以被硬编码的情况下这是不必要的
但它不像model_for_table("registered_user").column_name
上面例子中使用的那样。是否有类似于model_for_table
上面提供的将字符串转换为属性名称的方法?
有谁知道我怎么能实现这个?有可能吗?
提前致谢