2010-07-25 57 views

回答

3

您可以始終使用SELECT last_insert_id()查詢。

-1

爲什麼你需要那個?有可能你沒有使用ActiveRecord的全部功能。但是,只需訪問@record.id即可訪問創建的記錄的ID。

我會建議不要使用Rails的純SQL語法...

更新:對不起,只是意識到你實際上可能不會被使用ActiveRecord。當然,使用建議的SELECT語法是可行的(並且這是獲取該值的正確方法)。就個人而言,我仍然喜歡使用ActiveRecord。

9

這幾乎是紅寶石一樣的,不同之處在於MySQL連接被物體包裹和該庫可低谷的RubyGems(gem install mysql

require 'mysql' 
db = Mysql.connect(hostname, username, password, databasename) 
db.execute("INSERT INTO mytable VALUES 1,2,3"); 
db.insert_id 
# => last inserted id 

看到http://www.tmtm.org/en/mysql/ruby/

通常你不」 t做到這一點,並依靠像ActieRecord,DataMapper,Sequel,DBI這樣的SQL抽象庫......所有這些方法都有這種方法,但在不同的模塊下。

+0

我覺得方法已經改變了一下。現在是'db.last_id' – 2011-03-14 22:00:11