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 に答える