2011-06-29 8 views
0

私は文字列の配列を持っています:["users"、 "torrents"、 "comments"] これらの文字列は私のbdテーブルの名前です。Ruby On Railsでのメタプログラミング

どのようにループを作成してこれらのテーブルに接続し、いくつかのデータを挿入できますか?

答えて

6

ここeval

の使用を避けるには、使用したシンプルなソリューションですconstantize

注:constantizeは、すなわちClass

["users", "torrents", "comments"].each do |table_name| 
    # "users" => "User" 
    # or more complex 
    # "some_models" => "SomeModel" 
    # 
    class_name = table_name.singularize.camelize 

    # "User" => User 
    model_class = class_name.constantize 

    # do something with it 
    model_class.create!(:value => 12345) 
end 
一定のルビーを取得するために、それはちょうどしようと、評価に任意のコードを許可しません。