modelのフィルタのハマり

勉強会の最後のフィルタの部分ですが、
モデルのフィルタは

  • privateにしちゃ駄目
  • フィルタの中のメソッドアクセスは明示的にselfをつけるべし

ってところがキモのようです。

class UserSchedule < ActiveRecord::Base
	belongs_to :user
	belongs_to :schedule
  private
  def before_save
    attend="-" if attend.blank?
  end
end

を以下のように修正すべしでした。

class UserSchedule < ActiveRecord::Base
	belongs_to :user
	belongs_to :schedule
  def before_save
    self.attend="-" if self.attend.blank?
  end
end

これで動きましたで。