ActiveRecord の take と first の違いは?
3133 ワード
どちらも LIMIT 1 した結果を返す。
ただし first は、order の指定がなければプライマリーキーでソートする。
となっているようです。
require "active_record"
ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)
ActiveSupport::LogSubscriber.colorize_logging = false
ActiveRecord::Migration.verbose = false
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
silence_stream(STDOUT) do
ActiveRecord::Schema.define do
create_table :users do |t|
t.string :name
end
end
class User < ActiveRecord::Base
end
User.create!
end
User.take
User.first
User.order(:name).first
# >> User Load (0.1ms) SELECT "users".* FROM "users" LIMIT 1
# >> User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
# >> User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."name" ASC LIMIT 1
Author And Source
この問題について(ActiveRecord の take と first の違いは?), 我々は、より多くの情報をここで見つけました https://qiita.com/akicho8/items/16eb543aa1179c6bb5ea著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .