irb(main):001:0> hotel=Hotel.find(1)
←[1m←[36mHotel Load (1.0ms)←[0m ←[1mSELECT `hotels`.* FROM `hotels` WHERE `hotels`.`hotel_Id` = 1 LIMIT 1←[0m
=> #<Hotel hotel_Id: 1, hotel_Name: "Hotel Swosti", hotel_address: nil, hotel_location: "Bhubaneswar", hotel_contactNo: nil, crea
ted_at: nil, updated_at: nil>
irb(main):002:0> hotel.menus
←[1m←[35mMenu Load (1.0ms)←[0m SELECT `menus`.* FROM `menus` WHERE `menus`.`hotel_id` = 1
=> #<ActiveRecord::Associations::CollectionProxy []>
irb(main):003:0> first_menu=Menu.new(:menu_item_name=>'Rajma',:price=>30,:item_type=>'Half')
=> #<Menu hotel_Id: nil, menu_item_id: nil, menu_item_name: "Rajma", price: 30, item_type: "Half", created_at: nil, updated_at: n
il>
irb(main):004:0> first_menu.hotel
=> nil
irb(main):005:0> hotel.menus=first_menu
NoMethodError: undefined method `each' for #<Menu:0x512be78>
迁移:create_table:menus,:id => false做| t | t.integer'hotel_Id't.primary_key'menu_item_id't.string'menu_item_name't.integer'price't.string'item_type'
end
add_index("menus","hotel_Id")
结束
如果要添加first_menu
到hotel.menus
关联,则应执行以下操作:
hotel.menus << first_menu
发生错误是因为Hotel#menus=
setter希望收集Menu
对象作为参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句