Je suis la variable passant comme que:Passant variable à l'url dans des rails
new_sub_request_path(request_id:@request.id)
donc j'obtenir cette URL:
http://localhost:3000/sub_requests/new?request_id=1
Dans mon contrôleur je veux attribuer cette request_id comme ça:
@sub_request = SubRequest.new(sub_request_params)
@sub_request.request_id = params[:request_id]
et mes paramètres forts sont définis:
def sub_request_params
params.require(:sub_request).permit(:description, :diagnos, :price, :payment, :request_id)
end
Mais après avoir sauvegardé j'ai un attribut request_id vide, donc il semble qu'il ne soit pas assigné. Qu'est-ce que je fais mal?
EDIT: L'inspection des paramètres dans la console a montré que je n'ai que les attributs qui sont dans mon formulaire.
EDIT2:
def create
@sub_request = SubRequest.new(sub_request_params)
@sub_request.request_id = params[:sub_request][:request_id]
respond_to do |format|
if @sub_request.save
format.html { redirect_to @sub_request, notice: 'Sub request was successfully created.' }
format.json { render :show, status: :created, location: @sub_request }
else
format.html { render :new }
format.json { render json: @sub_request.errors, status: :unprocessable_entity }
end
end
end
Essayez '@sub_request.request_id = params [: sub_request] [: request_id] ' – Pavan
@Pavan, non il ne permet pas – yerassyl
S'il vous plaît publier ce code de la méthode du contrôleur complet. – Pavan