【发布时间】:2011-04-13 21:44:09
【问题描述】:
对不起,如果这个问题看起来很简单,我对 Rails 非常陌生(几天前刚开始学习),但是在咨询了 Google 和“使用 Rails 进行敏捷 Web 开发”之后,我找不到答案。
Rails 2.3.8 在两个模型上创建外键时遇到问题。我的表格如下所示:
cars manufacturer
---- ------------
car_make name
car_model country
car_class logo_url
image_url (and default 'id' created by Rails)
manufacturer_id
(and default 'id' created by Rails)
我的“car_make”和“name”字段基本相同;我创建的每辆汽车,我都希望能够将它与现有的制造商相关联。这是我试图在其上创建 FK 的列。
我的 car.rb 有 'belongs_to :manufacturer',我的 manufacturer.rb 有 'has_many :cars' 来建立一个制造商对多辆汽车的关系。但是,当我(通过脚手架)创建新车时,manufacturer_id 字段为空白。
我去了我的cars_controller,找到了正在使用的'create'方法,并尝试在下面添加第二行:
@car = Car.new(params[:car])
@car.manufacturer_id = car.manufacturer.id # <===
这会产生“CarsController#create 中的 NameError”错误,我看到:
undefined local variable or method 'car' for #<CarsController:0x1034642f0>
Rails 似乎不喜欢我添加的行。我缺少什么来完成这项工作?
【问题讨论】:
标签: ruby-on-rails join model foreign-keys