Re: [Rails] help me debug this model
On Tuesday, March 27, 2018 at 2:12:27 PM UTC-4, Walter Lee Davis wrote: > > Read the docs I linked you to, and if that doesn't explain it, then ask > the author of the code you're extending. It's possible that it is passing a > reference to a proc or lambda, but I have not seen that exact code before, > so I can only guess. > > Walter > > > On Mar 27, 2018, at 2:04 PM, fugee ohu> wrote: > > > > Thanks Walter And passing a symbol to message: how does that work? > > > > > > I changed it to validate :auction_active?, message: self.errors and now page loads without any errors -- 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/174e8b7e-afc4-48fd-8288-511a2556f49a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Rails] help me debug this model
Read the docs I linked you to, and if that doesn't explain it, then ask the author of the code you're extending. It's possible that it is passing a reference to a proc or lambda, but I have not seen that exact code before, so I can only guess. Walter > On Mar 27, 2018, at 2:04 PM, fugee ohuwrote: > > Thanks Walter And passing a symbol to message: how does that work? > > -- 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/59801D36-D4F0-4032-920A-D16052AC3671%40wdstudio.com. For more options, visit https://groups.google.com/d/optout.
Re: [Rails] help me debug this model
On Tuesday, March 27, 2018 at 11:44:54 AM UTC-4, Walter Lee Davis wrote: > > > > On Mar 27, 2018, at 9:20 AM, fugee ohu> wrote: > > > > Actually the first thing is see when I visit that link is the use of > validate without the s > > The validate method is used along with a custom validator method. The > validates method is "built in" and uses a DSL to specify how you want the > validations to work. > > validate :has_a_bow_on_top? > > private > > def has_a_bow_on_top? > unless bow&.on_top? > errors[:bow].add "must be on top" > false > end > end > > The built-in validates method is configured like this: > > validates :bow, presence: true > > This is a very basic example, there are lots more things you can do with > it. For all of our sakes, please read this entire page: > http://guides.rubyonrails.org/active_record_validations.html > > Walter > > > > > 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 > > > > > > -- > > 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-ta...@googlegroups.com . > > To post to this group, send email to rubyonra...@googlegroups.com > . > > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/b8ab4f9b-1682-4006-8d91-8f2c556f34e6%40googlegroups.com. > > > > For more options, visit https://groups.google.com/d/optout. > > Thanks Walter And passing a symbol to message: how does that work? -- 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/53605b52-f944-48fe-9a04-54a2b629d9a5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Rails] help me debug this model
> On Mar 27, 2018, at 9:20 AM, fugee ohuwrote: > > Actually the first thing is see when I visit that link is the use of validate > without the s The validate method is used along with a custom validator method. The validates method is "built in" and uses a DSL to specify how you want the validations to work. validate :has_a_bow_on_top? private def has_a_bow_on_top? unless bow&.on_top? errors[:bow].add "must be on top" false end end The built-in validates method is configured like this: validates :bow, presence: true This is a very basic example, there are lots more things you can do with it. For all of our sakes, please read this entire page: http://guides.rubyonrails.org/active_record_validations.html Walter > > 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 > > > -- > 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/b8ab4f9b-1682-4006-8d91-8f2c556f34e6%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- 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/9B8A922E-409D-4DBF-951D-8F01AD01A245%40wdstudio.com. For more options, visit https://groups.google.com/d/optout.
Re: [Rails] help me debug this model
What have you tried so far in debugging this? Have you used any debugger like pry to see what happens when you rune the code? -- 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/CAL37D8Fj5oHW2Q2uhdVuSkaC69eCoZywfvR3K4-KpABhTof65w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.