【问题标题】:Basic Rails 3 saving parent object with association object基本 Rails 3 使用关联对象保存父对象
【发布时间】:2011-06-23 03:35:45
【问题描述】:

我有一个基本的 Rails 问题,我需要保存两个关联的对象。

关联是 Rtake has_many :companies 和 Company belongs_to :rtake

def create
  @rtake = RTake.new(:email => params[:contact_email])
  @rtake.role = "PROVIDER"

  @company = @rtake.companies.build(params[:company])
  @company.rtake = @rtake

  respond_to do |format|
    if @company.save_company_and_rtake              
      format.html{ redirect_to admin_companies_url}
    else
      flash.now[:errors] = @company.errors.full_messages.join(", ")
      format.html{ render "new" }
    end
  end
end

在我的 company.rb 类中我有

def save_company_and_rtake
  status1 = self.save(:validate => false)      
  status2 = self.rtake.save(:validate => false)      
  status  = status1 && status2
  status
end

我面临的问题是 company.rtake_id 仍然是nil。理想情况下,company.rtake_id 不应该在保存后更新为@rtake.id。

我知道我缺少一些基本的东西。不胜感激。

【问题讨论】:

    标签: ruby-on-rails-3 associations


    【解决方案1】:

    你不应该需要这一行:

    @company.rtake = @invitation
    

    @invitation 与您所显示的相比为零。

    而且,当您构建 @company 时,@rtake.id 未设置,因为它尚未保存。

    【讨论】:

      【解决方案2】:

      @company = @rtake.companies.build(params[:company])
      @company.rtake = @rtake

      @rtake.companies.build(params[:company]) 这已经意味着@company.rtake == @rtake。这里是多余的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-06
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多