Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
¿Cómo paso un objeto en el asistente de URL de Rails?

Tengo un problema para entender cómo configurar las rutas en rieles para pasar un objeto al asistente de URL.

Agregué un nuevo método add_item

 def add_item @item = Item.create(item_params) puts @hospital.inspect puts @item.inspect @hospital.items << @item respond_to do |format| if @hospital.save format.html { redirect_to hospital_url(@hospital), notice: "Item was added to hospital" } format.json { render :show, status: :ok, location: @hospital } else format.html { render :edit, status: :unprocessable_entity } format.json { render json: @hospital.errors, status: :unprocessable_entity } end end end

Agregué la ruta correspondiente

 resources :hospitals do member do post :add_item end end

pero cuando ejecuto mi prueba que usa

 post add_item_hospital_url(@hospital), params: { item: { item_code: item.item_code, description: item.description, gross_charge: item.gross_charge } }

el @hospital en la prueba no es nulo, pero en el controlador, lo es. ¿Qué estoy haciendo mal? Mis rutas parecen estar bien.

 add_item_hospital POST /hospitals/:id/add_item(.:format)
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

La variable de instancia @hospital es nil en el controlador porque no se ha configurado. Tal vez podría agregar un before_action para establecer el valor de la variable de instancia o simplemente agregarlo al método add_item .

Al pasar modelos al asistente de URL, la identificación de ese objeto se puede encontrar dentro del hash de parámetros

 class HospitalsController < ApplicationController before_action :set_hospital, only: :add_item def add_item # ... your code here end private def set_hospital @hospital = Hospital.find(params[:id]) rescue ActiveRecord::RecordNotFound # handle exception end end
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda