Я использовал метод association_collection "other_ids" в моем приложении на Rails без проблем. Однако всякий раз, когда я пытаюсь получить доступ к нему из модели, определяющей ассоциацию, Rails не имеет ни малейшего представления, о чем я говорю. Например:
class Membership < ActiveRecord::Base
belongs_to :course, :touch => true
belongs_to :person, :touch => true
end
class Day < ActiveRecord::Base
belongs_to :course, :touch => true, :counter_cache => true
has_many :presents, :dependent => :delete_all
has_many :people, :through => :presents
before_destroy :clear_attendance
def clear_attendance
mems = Membership.where(:course_id => course.id, :person_id => person_ids)
mems.update_all(["attendance = attendance - ?", (1 / course.days.size.to_f)])
end
end
В этом случае person_ids всегда равен нулю. Я пробовал self.person_ids, people.ids и т. Д. Все ничего. Я использовал day.person_ids в другом месте без проблем, так почему я не могу использовать его здесь?
Я использую Ruby 1.9.1 и Rails 3.0.3. Вот вызов SQL из моего журнала:
[1m [36mAREL (0.0ms) [0m [1mUPDATE "членство" SET посещаемость = посещаемость - 0.3333333333333333 ГДЕ ("членство". "Course_id" = 4) И ("членство". "Person_id" IN (NULL)) [0м
edit: добавлено больше кода для уточнения вопроса