Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

206
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda