2015-07-14 1 views
0

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

+1

Essayez '@sub_request.request_id = params [: sub_request] [: request_id] ' – Pavan

+0

@Pavan, non il ne permet pas – yerassyl

+0

S'il vous plaît publier ce code de la méthode du contrôleur complet. – Pavan

Répondre

1

Vous devez définir quelque chose comme ci-dessous pour la request_id pour enregistrer dans le tableau sub_requests.

Dans votre méthode create ajouter cette ligne

@request = Request.find(params[:request_id]) et faire

@sub_request.request_id = @request.id

ou

Vous pouvez simplement ajouter un hidden_field dans votre forme comme ci-dessous

<%= f.hidden_field :request_id, :value => @request.id %> 

Et assurez-vous que vous autorisez :request_id dans votre sub_request_params