0

我不明白为什么我会收到此错误

undefined method `sector_id' for #<Portfolio:0x007fe17c2e3848>

我有一个投资组合模型和一个部门模型,它们看起来像这样

class Portfolio < ActiveRecord::Base
  belongs_to :sector
  attr_accessible :overview, :title, :sector_id
end



class Sector < ActiveRecord::Base
  has_many :portfolios
  attr_accessible :name
end

我的路线

resources :portfolios do
  resources :sectors
end

所以在我的表格中创建一个新的投资组合我有这个 collection_select

<%= f.label :sector_id, "Choose Sector", :class => 'title_label' %><br>
<%= f.collection_select(:sector_id, Sector.all, :id, :name, :prompt => "Please Select a Sector") %>

这是我以前做过很多次的事情并且它已经奏效了,谁能明白我为什么会收到这个错误?

我唯一能想到的是,我将我的投资组合控制器称为投资组合,我总是混淆了复数和单数控制器名称,这对我的情况有影响吗?

4

1 回答 1

5

也许您尚未运行在表“投资组合”中添加列“sector_id”的迁移。如果您使用 MySQL 连接到您的数据库并检查表 ( show create table portfolios;)。如果您使用其他 rdbms,请使用适当的方法从您的数据库服务器获取此信息。或者,在您的 rails 控制台 ( rails c) 中输入Portofolio并查看它打印出的属性。它包括sector_id吗?

于 2013-08-05T11:24:35.053 回答