Ruby 表单未保存多个ID

Ruby 表单未保存多个ID,ruby,ruby-on-rails-3,forms,Ruby,Ruby On Rails 3,Forms,我有以下几点 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 classportfolio 当我提交表单时,它会保存所有其他属性,但不会传递或保存扇区

我有以下几点

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 
classportfolio
我在表格中选择了一个集合,用于创建新的投资组合

<%= f.collection_select(:sector_id, Sector.all, :id, :name, {:prompt => "Please Select a Sector"}, {:multiple => true}) %>
“请选择一个扇区”},{:multiple=>true})%>
当我提交表单时,它会保存所有其他属性,但不会传递或保存扇区id

我希望能够为扇区参数保存多个ID

我会错过什么


我是否需要在我的投资组合模型中为:部门使用accepts\u nested\u attributes\u?

在您的情况下,建议使用:

portofolio车型

class Portofolio < ActiveRecord::Base
  attr_accessible :sector_ids, ....
  has_many :portofolio_sectors
  has_many :sectors, through: :portofolio_sectors
end
class PortofolioSector < ActiveRecord::Base
  belongs_to :portofolio
  belongs_to :sector
end
class Sector < ActiveRecord::Base
  has_many :portofolio_sectors
  has_many :portofolios, through: :portofolio_sectors
end
如何从扇区ID创建portofolio\u扇区您还可以看到以下链接:,请参阅tag\u lis方法


鉴于您可以使用:
portofolio访问扇区。扇区
,这将是属于此
portofolio的
扇区
数组

{:multiple=>true}
正在产生问题,我确信您可以使用它保存一个
扇区id
但我想保存多个id,有什么想法吗?改变你的数据模型?您只有一个扇区id。那么a与多个扇区有关系?抱歉,我不太清楚您的意思,但我猜
sector\u id
是您的外键,因此不建议将其保存到数组中,而是使用列
id:int,portfolio\u id:int,sector\u id:int
连接表
portfolio\u sectors
。如果仍要在列ref中保存数组,再次感谢。。因此,当我创建一个新的投资组合时,它是用部门id和投资组合id更新的投资组合部门模型。当您创建portofolio时,portofolio部门保持不变。创建扇区时,portofolio_扇区保持不变,只有将扇区添加到portofolio时,才会创建portofolio_扇区表中的新行。我会更新答案的。啊,好的,谢谢,你不认为你可以给我一些在视图中访问这些的指针吗?阅读我的更新,希望这会有所帮助。另外,我强烈推荐观看我在这里链接的视频,修改后的视频非常有帮助。我当然会的,你帮了我很大的忙,我会多看一些
class Sector < ActiveRecord::Base
  has_many :portofolio_sectors
  has_many :portofolios, through: :portofolio_sectors
end
id   portofolio_id     sector_id
 1               2             2
 2               2             5
 3               2            17
 4               2             8