2016-04-04 5 views
0

Ich habe einen Zweig ModellRails 4.0.3 - has_many durch nicht definierte Methode 'name' für nil: NilClass - nur auf die Produktion

und ein Unternehmensmodell

class Company < ActiveRecord::Base 
    has_many :company_branches 
    has_many :branches, -> { uniq }, :through => :company_branches 
end 

Das Unternehmen haben kann viele Zweige durch company_branches

class CompanyBranch < ActiveRecord::Base 
    belongs_to :branch, touch: true 
    belongs_to :company, touch: true 
end 

auf meinem lokalen Rechner alles funktioniert gut, aber wenn ich versuche, das Formular auf m zu sparen y Produktion Server erhalte ich: NoMethodError (undefined method Name‘für nil: NilClass)`

Der Anruf in meinem Controller @ company.update_attributes (company_params) - Der Controller empfängt die branch_ids als Array, wie branch_ids => [1, 2, 3]

Interessante Teil die Steuerung (Es fehlt an @ company.update_attributes (company_params)):

class Admin::CompaniesController < Admin::AdminController 
    respond_to :html, :json 
    load_and_authorize_resource 


    def update 
     @company = Company.find(params[:id]) 
     @company.update_attributes(company_params) 
     .... 
    end 


    private 
    def company_params 
     params.require(:company).permit(:id, branch_ids: []) 
    end 
end 

Um zu klären: ich habe viele Dinge und derzeit nur habe einen Zweig auf meinem Produktions-Server versucht. Selbst mit diesem einen Zweig bekomme ich den Fehler, wenn ich versuche, es zu speichern.

bearbeiten: Ich stellte die vollständige Stacktrace hier: http://pastebin.com/tw6hjkyF

+0

Wo wird Ihre App gehostet? Hast du rake db: migrate? –

+0

Die App wird auf einem eigenen Server gehostet. Wir implementieren mit capistrano, so dass wir kein Migrationsproblem haben. Die App läuft seit mehreren Jahren. –

+0

Wenn es bei @ company.update_attributes() usw. mit einer Nullklasse fehlschlägt, bedeutet das nicht, dass Ihre @company-Instanz null ist? –

Antwort

0

Es gibt einen Bug mit Active Record ist, müssen Sie Rails auf das Upgrade oder Rubin Herabstufung von 2,2 bis 2.1.8 oder niedriger.

+1

Vielen Dank! Das war der Grund. –

Verwandte Themen