这段代码究竟出了什么问题?以及如何运行此代码? 因为我不熟悉红宝石,请解释我一点。请帮忙!!!
类MyConnectionBase<的ActiveRecord ::基
client = Mysql2 :: Client.new(:host =>“localhost”,:database =>“flipkart_project_development”,:table =>“users”,:username =>“flipkart_project”,:password =>“mypass”)
results = client.query(“SELECT * FROM users”)
放置结果
端
答案 0 :(得分:0)
在Rails中,您不需要编写原始SQL查询。
将所有数据库配置放在config / database.yml文件中,如下所示。
development:
adapter: mysql2
database: flipkart_project_development
username: flipkart_project
password: yourpass
pool: 5
timeout: 5000
test:
adapter: mysql2
database: flipkart_project_test
username: flipkart_project
password: yourpass
pool: 5
timeout: 5000
production:
adapter: mysql2
database: flipkart_project_production
username: flipkart_project
password: yourpass
pool: 5
timeout: 5000
Rails将负责建立连接和执行查询。
在您的情况下,生成名为user
的模型 rails g model user
在您的项目中,您可以获取以下所有用户。
User.all
#This will generate the SQL query "select * from users"
#and will return the records as user objects.
同时查看migrations。
答案 1 :(得分:0)
给定的代码很难按需执行:它将在加载模型时执行。它应该放在一个方法中:
class MyConnectionBase < ActiveRecord::Base
def some_method
client = Mysql2::Client.new(:host => "localhost", :database => "flipkart_project_development", :table => "users" , :username => "flipkart_project", :password => "mypass")
results = client.query("SELECT * FROM users")
puts results
end
end
然后可以在MyConnectionBase.some_method
的控制器中调用它。
但是为什么你想这样做完全逃避了我。完成所有Rails方式会好得多(参见上面的评论)。