Getting raise_on_type_mismatch

Hello, I am a newbie Ruby developer.

I have an “Bookstore” application consisting of Books Prices.

In the Edit page, I am trying to associate Books with Price. The Books
and Prices has a has_one relationship and belongs_to relationship.

class Book < ActiveRecord::Base
belongs_to :price

class Price < ActiveRecord:Base
has_one :book

table book (
id int,
title varchar(20)
price_id int

table price (
id int
amount float

When I enter the Amount in the Edit page, I get the following

Price(#-616403668) expected, got String(#-610120718)

raise_on_type_mismatch' /home/hemal/src/ruby/rubygems-1.1.1/gems/activerecord-2.1.0/lib/ active_record/associations/belongs_to_association.rb:22:inreplace’
active_record/associations.rb:1106:in price=' /home/hemal/src/ruby/rubygems-1.1.1/gems/activerecord-2.1.0/lib/ active_record/base.rb:2361:insend’
active_record/base.rb:2361:in attributes=' /home/hemal/src/ruby/rubygems-1.1.1/gems/activerecord-2.1.0/lib/ active_record/base.rb:2360:ineach’
active_record/base.rb:2360:in attributes=' /home/hemal/src/ruby/rubygems-1.1.1/gems/activerecord-2.1.0/lib/ active_record/base.rb:2261:inupdate_attributes’
app/controllers/books_controller.rb:63:in update' app/controllers/books_controller.rb:62:inupdate’

How do I fix the error? Any help will be greatly appreciated,


On Jun 27, 2:26 am, Hemal M. [email protected] wrote:

class Price < ActiveRecord:Base
has_one :book

It looks like you’re trying to assign a string (presumably the value
entered on your page) to the book’s price which won’t work because
price= is expecting an instance of Price has a good series on forms that interact with multiple
models (although I’m not entirely sure why you need that in this case)