2011-11-11 100 views
0

用下面的代碼我想創建一個數據庫用戶。爲此,我想使用活動記錄事務。可悲的是我的代碼不起作用,有人能幫助我嗎?用戶創建交易

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

回答

0

我有機會思考這個問題,基本上你需要將數據庫更改爲系統一。 的ActiveRecord :: Base.establish_connection( :適配器=> 「mysql2」, :主機=> 「本地主機」, :用戶名=> 「我」, :密碼=> 「祕密」, :數據庫=>「 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」, :主機=> 「本地主機」, :用戶名=> 「我」, :密碼=> 「祕密」, :數據庫=>「主動記錄「 ) –