Ok, and I don't understand what this means: validates :auction_active?, message: :auction_active
class Auction < ActiveRecord::Base include ApplicationHelper belongs_to :product belongs_to :image has_many :bids validates :product, :image, :min_price, :start_price, :start_time, :duration, :bid_time_step, :bid_price_step, presence: true validates :duration, :bid_time_step, numericality: { only_integer: true } validates :min_price, :start_price, :bid_price_step, numericality: { greater_than_or_equal_to: 0.01 } validates :min_price, :start_price, :bid_price_step, fractionality: { multiplier: 0.01 } after_initialize do self.start_time = Time.now.round_by(15.minutes) if self.new_record? && self.start_time.nil? end before_create { |auction| auction.price = auction.start_price } def self.finished_soon # TODO: use PostgreSQL Auction.all.select { |a| (a.time_left <= 5.seconds) && (a.time_left > 1.second) } end def started? start_time < Time.now end def finished? time_left < 0 end def active? started? && !finished? end def time_left finish_time - Time.now end def start_in start_time - Time.now end def finish_time start_time + duration.seconds end def last_user bids.sorted.last.user if bids.any? end def increase_price_and_time self.price += self.bid_price_step self.duration += self.bid_time_step self.save! end def publish_updates PrivatePub.publish_to '/auctions/update', auction_id: self.id, time_left: status_desc(self), price: self.price end end On Tuesday, March 27, 2018 at 6:54:34 AM UTC-4, Allen Maxwell wrote: > > It might help to have the models for auction and user... also, I like to > add the annotate gem which gives some header comments in all my models to > show what fields etc are there. Very helpful info and references. > > you already know that the validate needs to be validates... > > is this an active system or SUD? do you have a solid development database > that is well populated to test/develop against? > > this link may help some: > http://guides.rubyonrails.org/active_record_validations.html#custom-methods > > other than that I'd have to see it in action to debug further. > > Good luck > > Max > > On Monday, March 26, 2018 at 6:17:56 PM UTC-6, fugee ohu wrote: >> >> This model has some errors that I wasn't able to get sorted out the two >> lines that begin with validate should be validates but after that I don't >> understand what the author's trying to do If I change them to validates >> I get the error Unknown validator: 'MessageValidator' for validate >> :auction_active?, message: :auction_active >> >> >> class Bid < ActiveRecord::Base >> belongs_to :auction >> belongs_to :user >> >> validates :auction, :user, presence: true >> validate :auction_active?, message: :auction_active >> validate :last_user_different? >> >> scope :sorted, -> { order(:created_at) } >> >> after_create :update_auction >> >> private >> >> def auction_active? >> if auction && !auction.active? >> if auction.finished? >> errors.add(:auction, :finished) >> else >> errors.add(:auction, :not_started) >> end >> end >> end >> >> def last_user_different? >> if auction && user >> errors.add(:user, :same_user_twice) if auction.last_user == user >> end >> end >> >> def update_auction >> auction.increase_price_and_time >> auction.publish_updates >> end >> end >> >> class User < ActiveRecord::Base has_many :authorizations has_many :bids has_one :avatar belongs_to :role has_many :permissions, through: :role validates :nickname, presence: true validates :nickname, uniqueness: { case_sensitive: false } accepts_nested_attributes_for :avatar # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :omniauthable, omniauth_providers: [:facebook, :vkontakte] before_create { |user| user.role = Role.default_role unless user.role } scope :bots, -> { where(role: Role.bot) } def self.random_bot bots.order('RANDOM()').first end def admin? role == Role.admin end def bot? role == Role.bot end def self.find_for_oauth(auth) authorization = Authorization.where(provider: auth.provider, uid: auth.uid.to_s).first if authorization user = authorization.user else email = auth.info[:email] nickname = auth.info[:nickname] user = User.where(email: email).first if user user.create_authorization(auth) elsif email.present? && nickname.present? password = Devise.friendly_token[0, 20] user = User.create(email: email, password: password, password_confirmation: password, nickname: nickname) user.create_authorization(auth) end end user end def create_authorization(auth) self.authorizations.create!(provider: auth.provider, uid: auth.uid) end def add_authorization(auth) authorization = Authorization.where(provider: auth.provider, uid: auth.uid.to_s).first if authorization authorization.user == self else create_authorization(auth) true end end end -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/394b4c7e-27e7-4e39-b9f1-1164887c5eda%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.