Requêtes SQL personnalisées Rails 3 sans modèle
Dans Rails 3, l'exécution de requêtes SQL personnalisées sans utiliser de modèle peut être réalisée en établissant un lien direct connexion à la base de données. Cependant, le code que vous avez fourni a rencontré un problème avec la méthode d'exécution.
Pour résoudre ce problème, vous pouvez utiliser l'approche suivante :
Voici une version modifiée de votre code qui intègre ces modifications :
@connection = ActiveRecord::Base.establish_connection( :adapter => "mysql2", :host => "localhost", :database => "siteconfig_development", :username => "root", :password => "root123" ) results = @connection.connection.execute("select * from users") results.each do |row| puts row[0] end
Alternativement, comme suggéré dans la solution fournie, vous pouvez utilisez également le :as => :hash lors de l'itération sur les résultats pour accéder aux colonnes par leurs noms :
@connection = ActiveRecord::Base.establish_connection( :adapter => "mysql2", :host => "localhost", :database => "siteconfig_development", :username => "root", :password => "root123" ) sql = "SELECT * from users" @result = @connection.connection.execute(sql) @result.each(:as => :hash) do |row| puts row["email"] end
En utilisant cette approche, vous pouvez exécuter des requêtes SQL personnalisées directement sans vous fier à un modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!