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