Ruby on Rails数据库查询

xDr*_*hnx -4 ruby sqlite postgresql ruby-on-rails

我使用scaffold为名为'pins'的东西生成一个db表,模型和控制器,在表中有一个名为description的字符串列.具体电话是:

rails g scaffold pins description:string
Run Code Online (Sandbox Code Playgroud)

在它生成的pins_controller文件中,它具有以下代码片段:

def index
    @pins = Pin.all
end
Run Code Online (Sandbox Code Playgroud)

Pin.all呼叫是否查询数据库中的所有引脚?是.allSQL调用还是Ruby on Rails方法?代码在我的测试网站上运行我只是想了解幕后发生了什么.

Atr*_*tri 5

Pin.all调用是否查询数据库中的所有引脚?

是的.一种简单的检查方法是使用rails console.当您Pin.all在控制台中运行时,它将显示如下内容:

2.1.2-perf :005 > Pin.all
  Pin Load (0.1ms)  SELECT "pins".* FROM "pins"
 => []
Run Code Online (Sandbox Code Playgroud)

.all和SQL调用还是Ruby on Rails方法?

all是一个ActiveRecord执行SQL查询的方法.阅读文档了解更多信息.