Rails 3 Benutzerdefinierte SQL-Abfragen ohne Modell
In Rails 3 kann die Ausführung benutzerdefinierter SQL-Abfragen ohne Verwendung eines Modells durch die Einrichtung einer direkten Funktion erreicht werden Verbindung zur Datenbank. Bei dem von Ihnen bereitgestellten Code ist jedoch ein Problem mit der Ausführungsmethode aufgetreten.
Um dieses Problem zu beheben, können Sie den folgenden Ansatz verwenden:
Hier ist eine modifizierte Version Ihres Codes, die diese Änderungen enthält:
@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
Alternativ können Sie, wie in der bereitgestellten Lösung vorgeschlagen, auch :as => :hash-Option beim Durchlaufen der Ergebnisse, um über ihre Namen auf die Spalten zuzugreifen:
@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
Mit diesem Ansatz können Sie benutzerdefinierte SQL-Abfragen direkt ausführen, ohne auf ein Modell angewiesen zu sein.
Das obige ist der detaillierte Inhalt vonWie führe ich benutzerdefinierte SQL-Abfragen in Rails 3 aus, ohne ein Modell zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!