我有一些代码在我的项目模型(非常松散)像这样:自我ID模型,记录被创建之前 - 轨道3
def author_id=(xyz)
book = Book.find_by_author_id(xyz)
book.author_id = self.id
end
self.id似乎并没有被不过,当设置创造新的纪录...任何想法?
我有一些代码在我的项目模型(非常松散)像这样:自我ID模型,记录被创建之前 - 轨道3
def author_id=(xyz)
book = Book.find_by_author_id(xyz)
book.author_id = self.id
end
self.id似乎并没有被不过,当设置创造新的纪录...任何想法?
id设置为仅在将其保存到数据库后进行记录。所以,当你创建一个新的记录,没有ID设置但因为对象是不是在数据库中还可以添加在这里
after_create (or after_save - whatever you need) do |record|
book = Book.find_by_author_id(xyz)
book.update_attributes :author_id => record.id
end
一个简单的回调。您可以使用实例方法new_record?()
进行测试。
如果self
是new_record?
(未保留在数据库中),那么您将无法像这样分配id,因为还没有id。但是,应该可以将book.author
设置为self
。
如果这不是你的情况,你应该考虑指定你的问题。