如何使用rails运行简单的MYSQL查询

我想用rails运行一个简单的MYSQL查询

Select movie-title, movie-director from moving order by rating desc limit 5; 

我不想要所有开销创建模型。 我只想运行查询。

做这个的最好方式是什么?
我甚至无法连接

这是我的控制器代码

 ActiveRecord::Base.establish_connection ({ :adapter => "mysql2", :host => "some-rds.amazon.com", :username => "root", :password => "root", :database => "blah"}) 

这将生成此错误ActiveRecord :: ConnectionNotEstablished

谢谢

 movie_title = 'Planet of the Apes' sql = "SELECT * FROM movies WHERE title = #{ActiveRecord::Base.sanitize(movie_title)}" ActiveRecord::Base.connection.execute(sql) 

只需在控制台中使用ModelName.find_by_sql(“您的SQL查询”)。

嘿,为了拳头陡峭,确保你有八个gem并安装支持Mysql:

配置Rails应用程序

在本节中,我们将修改Rails应用程序服务器,以便它们开始使用我们刚刚设置的数据库服务器。

安装数据库服务器库

首先要做的是安装必要的数据库。 在我们的例子中,它是MySQL的开发包。

运行以下命令安装MySQL开发包mysql-devel:

 yum install -y mysql-devel 

配置database.yml对于Rails

Rails应用程序的数据库设置保存在/ config目录中的database.yml文件中。

运行以下命令以使用nano文本编辑器编辑database.yml文件:

 # Make sure to enter your application deployment directory # Example: # cd /var/www/my_app nano config/database.yml 

打开此文件后,您将看到数据库设置,除以环境名称。 由于应用程序需要使用生产环境运行,因此我们编辑该配置。

用以下内容替换生产:YML代码块,更改必要的位以适合您自己的设置配置,例如IP地址等。

 # Example: # production: # adapter: mysql # encoding: utf8 # database: [database name] # username: [user name] # password: [password] # host: [server IP address] # port: [port number] # protocol: [protocol] # pool: [connection pool] production: adapter: mysql encoding: utf8 database: rails_myapp username: rails_myapp_user password: pwd host: 128.199.233.36 port: 3306 pool: 10 

注意:如上例所示,您可能需要指定协议。

注意:pool参数包含可用的最大并发数据库连接槽(即池)的数量。 您需要评估您的需求并相应地设置一个数字。

按CTRL + X保存并退出并用Y确认。

获取mysqlgem

使用以下内容开始使用nano编辑Gemfile:

 nano Gemfile 

将以下行添加到文件中:

 gem 'mysql' 

按CTRL + X保存并退出并用Y确认。

使用bundle安装新gem:

 bundle install 

就是这样! 从现在开始,您的Rails应用程序服务器将使用您的全新数据库服务器进行所有操作。

您可以在以下url找到更多信息: https : //www.digitalocean.com/community/tutorials/scaling-ruby-on-rails-setting-up-a-dedicated-mysql-server-part-2

在中配置数据库连接

/config/database.yml

在控制器中,

 def connect_and_fetch result_obj = ActiveRecord::Base.connection.execute("select column from table") @rows = [] index = 0 result_obj.each do |row| @rows[index] = row index += 1 end end 

在html视图中,

 Result : <%= @rows%>