0

有没有办法从表名实例化命名空间模型对象?

例如:给定 table school_students, model School::Student, id 30,我可以这样做:

student = get_from_table_name_and_id("school_students", 38)

4

1 回答 1

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 上的命名约定是命名空间,由/字符串中的 a 表示

于 2012-02-21T12:23:38.767 回答