我有一个users表,它有一个password_digest字段,我正在使用API,我想应用此方法:
Users.all.select(*User.attribute_names.reject { |attr| attr == 'password_digest' })
但是我必须在每次执行的查询中都写这个,如何将其设置为默认行为。
答案 0 :(得分:2)
您可以使用默认范围:
class User < ActiveRecord::Base
default_scope select(*User.attribute_names.reject { |attr| attr == 'password_digest' })
end
另一种方式:
class User < ActiveRecord::Base
default_scope select(User.column_names - ["password_digest"])
end
参考:
https://apidock.com/rails/ActiveRecord/Base/default_scope/class