Basic Rails 3 сохранение родительского объекта с объектом ассоциации - PullRequest
0 голосов
/ 23 июня 2011

У меня есть базовый вопрос по рельсам, где мне нужно сохранить два связанных объекта.

Ассоциация: Rtake has_many: компании и компания, принадлежащая_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 после сохранения.

Я знаю, что мне не хватает чего-то простого. Был бы признателен за помощь.

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вам не нужна эта строка:

@company.rtake = @invitation

@ приглашение равно нулю из того, что вы показали.

Но также, когда вы создали @company, @rtake.id не было установлено, потому что оно не было сохранено.

0 голосов
/ 06 июля 2011

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

@rtake.companies.build(params[:company]) Это уже означает @company.rtake == @rtake. это редундирует здесь.

...