Heim >Datenbank >MySQL-Tutorial >Wie führe ich benutzerdefinierte SQL-Abfragen in Rails 3 aus, ohne ein Modell zu verwenden?

Wie führe ich benutzerdefinierte SQL-Abfragen in Rails 3 aus, ohne ein Modell zu verwenden?

DDD
DDDOriginal
2024-12-26 15:27:14848Durchsuche

How to Execute Custom SQL Queries in Rails 3 Without Using a Model?

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:

  1. Stellen Sie mithilfe von ActiveRecord eine Verbindung zur Datenbank her:: Base.establish_connection.
  2. Rufen Sie das Verbindungsobjekt mit ab ActiveRecord::Base.connection.
  3. Führen Sie die benutzerdefinierte SQL-Abfrage mit „connection.execute“ aus.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn