2010-07-25 1 views

Répondre

3

vous pouvez toujours utiliser la requête SELECT last_insert_id() à la place.

-1

Pourquoi auriez-vous besoin de cela? Les chances sont que vous n'utilisez pas ActiveRecord à sa pleine puissance. Cependant, vous pouvez accéder à l'identifiant d'un enregistrement créé en accédant simplement au @record.id.

Je recommande de ne pas utiliser simplement la syntaxe SQL dans Rails ...

Mise à jour: Désolé, vous venez de réaliser en fait pas utiliser ActiveRecord. Bien sûr, il est possible d'utiliser la syntaxe suggérée SELECT (et c'est la bonne façon d'obtenir cette valeur). Personnellement, je préfère toujours utiliser ActiveRecord.

9

Il est à peu près le même en rubis, sauf que la connexion mysql est enveloppé par un objet et que la bibliothèque est rubygems cylindro disponible (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 

voir Habituellement http://www.tmtm.org/en/mysql/ruby/

vous n » Pour ce faire, vous pouvez compter sur une bibliothèque d'abstraction sql comme ActieRecord, DataMapper, Sequel, DBI, ... tous ont cette méthode disponible mais sous différents modules.

+0

Je pense que les méthodes ont un peu changé. C'est maintenant 'db.last_id' –

Questions connexes