Допустим, у меня есть два класса: Post
и Comment
class Post < ActiveRecord::Base
belongs_to :newest_comment, :class_name => "Comment", :foreign_key => "newest_comment_id", :dependent => :destroy
has_many :comments, :dependent => :destroy, :autosave => false
def set_comment(new_comment)
comments << new_comment # <= still auto saves
self.newest_comment = new_comment # why do I need the self?
save
end
end
class Comment < ActiveRecord::Base
Атрибут: newest_comment - это небольшая оптимизация, которая доставляет мне трудности. Мне нужно, чтобы действия внутри set_comment
происходили внутри транзакции.
Я прочитал документацию неправильно или new_comment
не должен быть автосохранен. Мне также интересно, зачем нужен self
.
Вы можете увидеть мои два комментария в коде.