我不知道为什么这个操作系统让我如此头疼,但它是..我想要一个表单来创建一个会附加了相关member_type的成员
到目前为止我的设置
class Member < ActiveRecord::Base
has_one :membership
accepts_nested_attributes_for :membership
attr_accessible :membership_id, :forename, :middlename, :surname, :house_no, :house_name, :street, :town, :postcode, :home_tel, :mobile_tel, :work_tel, :email
end
class Membership < ActiveRecord::Base
belongs_to :member
attr_accessible :membership_type
end
成员模型将membership_id作为外键。
然后是我的admin / member.rb表单,这是问题开始的地方。我似乎无法使用相关的membership_id创建成员记录。
form do |f|
f.inputs "Member Registration" do
f.input :forename
f.input :middlename
f.input :surname
f.input :house_no
f.input :house_name
f.input :street
f.input :town
f.input :postcode
f.input :home_tel
f.input :mobile_tel
f.input :work_tel
f.input :email
end
f.inputs :for => [:membership, f.object.membership || Membership.new] do |m|
m.input :membership_type, :label => 'Membership Type', :as => :select, :collection => Membership.all.map{|m| [m.membership_type, m.id]}
end
f.actions
end
目前发生的一切是成员资格模型根据选择的选项添加了另一条记录,因此如果选择了Peack成员资格,则会重复。
但现在看看它是有意义的,因为我要求它创建一个新的会员记录。那么我如何让它来创建一个会员ID的会员记录
现在迷路了
答案 0 :(得分:2)
您的关联不合适,根据我的理解,您需要创建新成员或需要通过选择MemberShip类型来更新现有成员。
因此,在这种情况下,您需要在members表中拥有membership_id。
class Member < ActiveRecord::Base
belongs_to :membership
attr_accessible membership_id, :forename, :middlename, :surname, :house_no, :house_name, :street, :town, :postcode, :home_tel, :mobile_tel, :work_tel, :email
end
class Membership < ActiveRecord::Base
has_many :members
attr_accessible :membership_type
end
form do |f|
f.inputs "Member Registration" do
f.input :forename
f.input :middlename
f.input :surname
f.input :house_no
f.input :house_name
f.input :street
f.input :town
f.input :postcode
f.input :home_tel
f.input :mobile_tel
f.input :work_tel
f.input :email
end
f.input :membership_id, :label => 'Membership Type', :as => :select, :collection => Membership.all.map{|m| [m.membership_type, m.id]}
f.actions
end