【发布时间】:2017-02-27 05:30:44
【问题描述】:
我在一个名为 bill 的模型的表单上有一个集合,该模型用一个文本框显示该集合
#<Sponsorship::ActiveRecord_Associations_CollectionProxy:0x007f99a874bcd0>
而不是下拉菜单。有什么想法吗?
bill.rb
class Bill < ActiveRecord::Base
belongs_to :congress_person
has_many :bps, :dependent => :destroy
has_many :committees, :dependent => :destroy
has_many :sponsorships, -> { where(kind: :primary) }, class_name: "Sponsorship"
has_many :cosponsorships, -> { where(kind: :secondary) }, class_name: "Sponsorship"
has_many :sponsors, class_name: 'CongressPerson', through: :sponsorships
has_many :cosponsors, class_name: 'CongressPerson', through: :cosponsorships
congress_people.rb
has_many :sponsorships, -> { where(kind: :primary) }, class_name: "Sponsorship", foreign_key: :sponsor_id
has_many :cosponsorships, -> { where(kind: :secondary) }, class_name: "Sponsorship", foreign_key: :sponsor_id
has_many :sponsored_bills, through: :sponsorships, source: :bill
has_many :cosponsored_bills, through: :cosponsorships, source: :bill
sponsorship.rb
belongs_to :bill
belongs_to :sponsor, class_name: "CongressPerson"
belongs_to :cosponsor, class_name: "CongressPerson"
_form.html.haml
...
.row-fluid
.col-md-12
%h3 Sponsor
#sponsors-form
= f.simple_fields_for :sponsors do |sponsor|
= render 'sponsor_fields', f: sponsor
.links
= link_to_add_association 'Add Sponsor', f, :sponsors, class: 'btn btn-secondary add-button'
...
_sponsors_fields.html.haml
.form-inline.clearfix
.row
.nested-fields
= f.input :sponsorships, :collection => @congress_people
= link_to_remove_association "Remove", f, class: "form-control btn btn-secondary", style: 'height:20%; display:inline; float:right;'
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 simple-form