如何使用has_many构建方法:通过关联

时间:2015-08-26 16:18:56

标签: ruby-on-rails

我的模特:

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不再以同样的方式工作的原因?

0 个答案:

没有答案