8

我想使用 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

谢谢

4

4 回答 4

15
movie_title = 'Planet of the Apes'
sql = "SELECT * FROM movies WHERE title = #{ActiveRecord::Base.sanitize(movie_title)}"
ActiveRecord::Base.connection.execute(sql)
于 2013-09-11T20:06:26.457 回答
4

只需在控制台中使用 ModelName.find_by_sql("your sql query") 即可。

于 2013-09-11T20:06:42.440 回答
1

配置数据库连接

/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%>
于 2018-10-20T06:31:34.063 回答
0

嘿,第一个陡峭的确保你有八个 gem 并安装对 Mysql 的支持:

配置 Rails 应用程序

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

安装数据库服务器库

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

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

yum install -y mysql-devel

为 Rails 配置 database.yml

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 确认保存并退出。

获取 mysql Gem

使用以下命令开始使用 nano 编辑 Gemfile:

nano Gemfile

将以下行添加到文件中:

gem 'mysql'

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

使用 bundle 安装新的 gem:

bundle install

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

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

于 2015-03-16T07:12:29.893 回答