我有一个RoR应用程序,我在Ruby 1.9.3,Rails 3.2和Bootstrap 2中使用simple_form启动。在继续之前,我决定转向Ruby 2.0,Rails 4.0和Bootstrap 3。这是我遇到的一个迁移问题。
在Rails 3.2版本中,这很好用:
<%= f.association :services, collection: @account.company.services, as: :check_boxes, label_method: :description %>
在Rails 4.0世界中,它在集合数据中没有给我任何东西。在Rails 4.0中,这些都可以工作:
<%= f.association :services, as: :check_boxes %>
<%= f.association :services, collection: Service.all, as: :check_boxes, label_method: :description %>
<%= f.association :services, collection: Service.where(id: 1), as: :check_boxes, label_method: :description %>
在Rails控制台上,@account.company.services
返回ActiveRecord::Associations::CollectionProxy [#< ... >]>
,Service.all
返回ActiveRecord::Relation [#< ... >]>
是否有人知道将我的选择合并到f.association
集合中的正确格式?
修改
现在正在运作。我的部分问题原来是使用没有加入“服务”的“公司”记录(我的不好)。我确实将它与其他问题联系起来,所有这些都源于CollectionProxy替换旧的数组(或Relation)返回对象。通过在集合上使用.to_a,我能够解决大部分问题。