有没有办法从其表名中实例化命名空间的模型对象?
例如:给定表school_students
,模型School::Student
,id 30
,我可以这样做:
student = get_from_table_name_and_id("school_students", 38)
答案 0 :(得分:0)
此实施应该有效
def get_from_table_name_and_id(klass, id)
klass.gsub('_','/').classify.constantize.find(id)
end
输出:
irb(main):004:0> "school_students".gsub('_','/').classify
=> "School::Student"
Rails上的命名约定是一个命名空间,由String
中的/
表示