Saya perlu menulis skrip ruby mandiri yang seharusnya menangani database. Saya menggunakan kode yang diberikan di bawah ini di rel 3
@connection = ActiveRecord::Base.establish_connection(
:adapter => "mysql2",
:host => "localhost",
:database => "siteconfig_development",
:username => "root",
:password => "root123"
)
results = @connection.execute("select * from users")
results.each do |row|
puts row[0]
end
tetapi mendapatkan kesalahan: -
`<main>': undefined method `execute' for #<ActiveRecord::ConnectionAdapters::ConnectionPool:0x00000002867548> (NoMethodError)
apa yang saya lewatkan di sini?
LARUTAN
Setelah mendapatkan solusi dari denis-bu saya menggunakannya dengan cara berikut dan itu berhasil juga.
@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
sql
ruby-on-rails
neeraj
sumber
sumber
connection.execute
daripadaconnection().execute
sumber
ActiveRecord::Base.connection.execute("SQL query")
ActiveRecord::Base.connection_pool.checkin(connection)
apidock.com/rails/ActiveRecord/ConnectionAdapters/…Saya akan merekomendasikan menggunakan
ActiveRecord::Base.connection.exec_query
alih-alihActiveRecord::Base.connection.execute
yang mengembalikanActiveRecord::Result
(tersedia di rel 3.1+) yang sedikit lebih mudah untuk dikerjakan.Kemudian Anda dapat mengaksesnya di berbagai hasilnya dalam berbagai cara seperti
.rows
,.each
, atau.to_hash
Dari dokumen :
catatan: menyalin jawaban saya dari sini
sumber
Anda juga bisa menggunakan find_by_sql
sumber
Bagaimana dengan ini :
Anda perlu menginstal permata TinyTds, karena Anda tidak menentukannya dalam pertanyaan Anda, saya tidak menggunakan Rekaman Aktif
sumber