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
Wo wird Ihre App gehostet? Hast du rake db: migrate? –
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. –
Wenn es bei @ company.update_attributes() usw. mit einer Nullklasse fehlschlägt, bedeutet das nicht, dass Ihre @company-Instanz null ist? –