0

テーブル名から名前空間モデルオブジェクトをインスタンス化する方法はありますか?テーブル名からモデルオブジェクトを初期化する

例:特定の表school_students、モデルSchool::Student、ID 30は、私が行うことができます:

irb(main):004:0> "school_students".gsub('_','/').classify                                
=> "School::Student" 

student = get_from_table_name_and_id("school_students", 38)

答えて

0

は、この実装は

def get_from_table_name_and_id(klass, id) 
    klass.gsub('_','/').classify.constantize.find(id) 
end 

出力を動作するはずですナミRailsの規則はネームスペースが(String)で表されています

+0

名前空間モデルではうまくいかないと思います。 – zsquare

+0

ちょうどチェックしました。それはdoesntです。 – zsquare

+0

これは私の例でうまくいくのはなぜですか?あなたは私たちに有効な価値を送るか、別のものを試してみませんか? – shingara

関連する問題