我的模特:
class Vip < ActiveRecord::Base
belongs_to :organization
has_many :events
has_many :organizations, :through => :events
end
class Organization < ActiveRecord::Base
belongs_to :user
has_many :events
has_many :vips, :through => :events
end
class Event < ActiveRecord::Base
belongs_to :organization
belongs_to :vip
end
我的vips控制器:
def create
@organization = Organization.find(params[:organization_id])
@vip = @organization.vips.build(vip_params)
if @vip.save
redirect_to organization_path(@organization)
else
render 'new'
end
end
def vip_params
params.require(:vip).permit(:name, :about, :organization_id)
end
在开始使用has_many:through关联之前,build
方法会自动将外键添加到新的vip中。所以我的vips表会填充organization_id
列。由于使用了has_many关联,organization_id
列在'vip#create'
上保留为NULL。
我的新关联是否有build
不再以同样的方式工作的原因?