Passing variable to the url in rails -
i passing variable that:
new_sub_request_path(request_id:@request.id) so url:
http://localhost:3000/sub_requests/new?request_id=1 in controller want assign request_id that:
@sub_request = subrequest.new(sub_request_params) @sub_request.request_id = params[:request_id] and strong parameters defined:
def sub_request_params params.require(:sub_request).permit(:description, :diagnos, :price, :payment, :request_id) end but after save have empty request_id attribute, seems not assigned. doing wrong?
edit: inspecting parameters in console showed have attributes in form.
edit2:
def create @sub_request = subrequest.new(sub_request_params) @sub_request.request_id = params[:sub_request][:request_id] respond_to |format| if @sub_request.save format.html { redirect_to @sub_request, notice: 'sub request 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
you have define below request_id save in sub_requests table.
in create method add line
@request = request.find(params[:request_id]) ,
@sub_request.request_id = @request.id
or
you can add hidden_field in form below
<%= f.hidden_field :request_id, :value => @request.id %> and make sure permitting :request_id in sub_request_params
Comments
Post a Comment