Forum: Ruby on Rails Issue with validation

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
B4b318b5fcc113077396f9ec874a59b8?d=identicon&s=25 Jason Wilson (noah-howard)
on 2006-04-09 01:34
Hello, I just got hold of the book 'Agile Web Development with Rails'
and I have been following along.
I just went through a segment of trying to add validation to a form.

I added the following code, as instructed, to my app/models/Products.rb
file:

protected
  def validate
    errors.add(:Price, "should be positive") unless Price.nil? || Price
>= 0.01
  end

with the exception of the upper-case P on Price, this is letter for
letter (unless I just can't read today).

When I try and submit the form I get this error.


NameError in Admin#create

uninitialized constant Price


Can' figure this out at all. I've been following the tutorial to the
letter and I'm sure if they had had this problem it would have been
mentioned. Anyone have any ideas? I'm using the latest release of RoR,
Mac OSX and MySQL 4.1

Thanks
792af4d95a8ff4da442ababc0dc06423?d=identicon&s=25 Clint Checketts (Guest)
on 2006-04-09 01:43
(Received via mailing list)
On 4/8/06, Jason Wilson <jwilson.k4izoku@gmail.com> wrote:
>
> protected
>   def validate
>     errors.add(:Price, "should be positive") unless Price.nil? || Price >=
> 0.01
>   end
>
> with the exception of the upper-case P on Price, this is letter for letter
> (unless I just can't read today).
>

Uppercase words are considered constants or class names. lower case
'price'
would be a local variable, you probably want to use '@price' (note the
lower
case too) since that would be an instance variable.

So I'd try:

protected
  def validate
    errors.add(:price, "should be positive") unless @price.nil? ||
@price >=
0.01
  end


I'm still just a noob though so take my advice with a grain of salt.

-Clint
B4b318b5fcc113077396f9ec874a59b8?d=identicon&s=25 Jason Wilson (noah-howard)
on 2006-04-09 02:10
Thanks, Clint,

Issue resolved, it did work as typed once I switched the var to
lower-case. I must have skipped over that part.
This topic is locked and can not be replied to.