使用以下代码我想创建一个数据库用户。为此,我想使用Active Record Transactions。可悲的是我的代码不起作用,有人能帮助我吗?
begin
ActiveRecord::Base.transaction("CREATE USER " + @user.name + " IDENTIFIED BY "1234")
rescue => e
puts e.to_s
end
答案 0 :(得分:0)
我有机会考虑这个问题,基本上你需要将数据库更改为系统数据库。 的ActiveRecord :: Base.establish_connection( :adapter => “mysql2” :host => “localhost” 的, :username => “我”, :password => “秘密”, :database => “ActiveRecord的” )
:database
将是包含User
表的数据库的名称。
然后你可以将User
创建包装在一个事务中,你可以这样做:
ActiveRecord::Base.transaction do
User.create({:name => "my_name"})
end
使用的属性应与您在系统User
表中找到的属性相匹配。
在执行此操作之前,您可能需要执行一些操作,例如关闭连接等,但这取决于您从哪里调用它。