Ho un problema con un record che non viene salvato - quando viene creato
nuovo - con la corrispondente chiave esterna.
Mostro il codice e poi qualche spiegazione:
def new_lavoro
@ilcandidato = session[‘user’] # aggiunto per una verifica
@ilcandidato2 = session[‘user’].id # aggiunto per una verifica
@lavoro = Lavori.new(:user => @ilcandidato)
end
def create_lavoro
@lavoro = Lavoro.new(params[:lavoro])
@user = User.find(@session[‘user’].id)
@lavoro.titolo = “Spazzino” # reimposta correttamente!!
@lavoro.user = @session['user']
@lavoro.user.id = 1 # ... continua a rimanere NIL...
if @lavoro.save
flash[:notice] = 'Lavoro è stato creato con successo.'
redirect_to :action => 'edit_info'
else
render :action => 'new_lavoro'
end
end
In pratica ‘lavoro’ viene sempre salvato con tutti i campi corretti
(come sono stati inseriti) tranne che per user che continua ad essere
NIL. Come si vede dal codice ho provato anche a imporre l’id di lavoro
ma nulla da fare…
Il modello ‘Lavoro’ contiene la relazione ‘belongs_to :user’, mentre il
modello ‘User’ contiene la relazione ‘has_many :lavori’.
Qualche idea?
Grazie mille per l’aiuto