私のアプリには、それぞれが無料プランまたはプレミアムプランのいずれかであり、それぞれに複数の会場写真を含めることができる会場のテーブルがあります。
無料の会場は最大3枚、プレミアム会場は最大10枚の会場写真を持てるように設定しようとしています。
会場.rb
計画は次のように設定されています。
PLANS = %w[free premium]
会場写真の制限も次のように設定されています。
def photo_limit
{:free => 3, :premium => 10}[plan]
end
会場写真.rb
次に、制限にまだ達しているかどうかを確認するためにこれを持っています:
validate :venuephoto_count_within_limit, :on => :create
def venuephoto_count_within_limit
if self.venue.venuephotos(:reload).count >= self.venue.photo_limit
errors.add(:base, "Exceeded venue photo limit")
end
end
これは私にこのエラーを与えています:
ArgumentError in VenuesController#update
comparison of Fixnum with nil failed
会場コントローラー
def update
@venue = Venue.find(params[:id])
if @venue.update_attributes(params[:venue])
flash[:notice] = 'Venue updated successfully'
redirect_to :back
end
end
助けてくれてありがとう!