2011-11-11 11 views
0

次のコードでは、データベースユーザーを作成します。このため、私はActive Record Transactionsを使用したいと思います。悲しいことに私のコードは機能しないので、誰かが私を助けることができますか?ユーザー作成トランザクション

begin 
    ActiveRecord::Base.transaction("CREATE USER " + @user.name + " IDENTIFIED BY "1234") 
rescue => e 
    puts e.to_s 
end 

答えて

0

私はこれについて考える機会がありましたが、基本的にはデータベースをシステム1に変更する必要があります。 はActiveRecord :: Base.establish_connection( :アダプター=> "mysql2"、 :ホスト=> "localhost" を、 :ユーザ名=> "私"、 :パスワード=> "秘密"、 :データベース=> " activerecord " )

:databaseは、Userテーブルを含むデータベースの名前になります。使用される属性を使用すると、システムUserテーブルで見つけるものと一致しなければならない

ActiveRecord::Base.transaction do 
     User.create({:name => "my_name"}) 
    end 

:あなたがトランザクションでUser作成をラップすることができます

その後、あなたはこのようにそれを行うだろう。

これを行う前に、接続を閉じるなどの作業が必要ですが、これはどこから呼び出すかによって異なります。

+0

こんにちは、お返事ありがとうございます!私はUser.create(...)と考えると、通常のユーザーをテーブルに作成します。しかし、私はデータベースユーザーを作成する必要があります。それを明示的にモデル化する必要がありますか? – shub

+0

ああ、あなたは正しいです、私はちょうど質問を誤解しました。だから、私はActiveRecordを使ってこれを行う必要があるのか​​どうか分かりません。 –

+0

私はこれについて考える機会がありましたが、基本的にデータベースをシステムに変更する必要があります。 はActiveRecord :: Base.establish_connection( :アダプター=> "mysql2"、 :ホスト=> "localhost" を、 :ユーザ名=> "私"、 :パスワード=> "秘密"、 :データベース=> "アクティブレコード " ) –

関連する問題