通过has_many
之类的User.first.books.create!(...)
关联创建对象时,新书会自动从关联中获取user_id
。
如果我调用自己的create方法,有没有办法获得user_id
?即User.first.books.own_create_method
def self.own_create_method
# how to get the user object?
end
谢谢!
答案 0 :(得分:0)
要定义User.first.books.own_create_method
,您将使用:
def self.own_create_method
book = build
# something custom you want to do with book
book.save
end
self.
允许您在Ruby中定义类方法。
答案 1 :(得分:0)
深入研究ActiveRecord new
方法,我发现你可以调用scope_attributes
并获得一个包含所有作用域属性的哈希值。
def self.own_create_method
attributes = scope_attributes
# attributes["user_id"] would be the user_id that is scoped by
...
end
不确定这是不是一个好习惯......