Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在rails中逐步查询SQL?_Sql_Ruby On Rails_Activerecord - Fatal编程技术网

如何在rails中逐步查询SQL?

如何在rails中逐步查询SQL?,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我一直在网上到处寻找答案,但运气不好。在哪里输入查询?在rails c中?我知道我必须使用ActiveRecord::base.connection,但我不知道它必须在哪里运行。抱歉,这是一个愚蠢的问题。Rails使用名为ActiveRecord的ORM与SQL数据库接口: 语法非常简单,您可以通过使用rails控制台(缩写为rails c)打开rails控制台来输入查询 例如,如果我想找到问题表中的所有记录,我打开控制台,只需键入Question。all: irb(main):001:0>问

我一直在网上到处寻找答案,但运气不好。在哪里输入查询?在rails c中?我知道我必须使用ActiveRecord::base.connection,但我不知道它必须在哪里运行。抱歉,这是一个愚蠢的问题。

Rails使用名为ActiveRecord的ORM与SQL数据库接口:

语法非常简单,您可以通过使用
rails控制台
(缩写为
rails c
)打开rails控制台来输入查询

例如,如果我想找到问题表中的所有记录,我打开控制台,只需键入
Question。all

irb(main):001:0>问题。全部

…这将转换为以下SQL查询:

问题加载(4.2ms)从“问题”中选择“问题”。*

如果要在rails控制台中执行原始SQL命令,可以使用SQL作为字符串对象的
ActiveRecord::Base.connection.execute(some_string)

您可以直接将SQL字符串作为参数写入,也可以事先将其声明为变量:

sql = "some raw sql"
ActiveRecord::Base.connection.execute(sql)

查看此问题了解更多信息:

这意味着如果需要输入活动记录语句,它将是ActiveRecord::base.execute(语句)?如果这是一个复杂的查询呢?有没有一个文件我把所有的东西都写下来,然后加载到rails控制台上?啊,我明白了。起初,我不知道您想要执行原始SQL。在这种情况下,只需使用ActiveRecord::Base.connection.execute(sql作为字符串)。我会更新我的答案。