La página de índice de Mis cuentas enumera todas las cuentas, y por cuenta tiene un enlace a "+ Servicio"; esto debería dirigir al usuario a la página/my_services/new y rellenar previamente el campo account_id con la ID correspondiente, según el enlace en el que se haya hecho clic en la página de índice de Cuentas.Rieles: paso de parámetros en el enlace a
Tengo depuración (params) en la parte inferior de cada página, y con lo que intento, no obtengo nada más que: controlador y: acción que aparece en mis parámetros para/my_services/nueva página .
El enlace que he estado tratando es la siguiente:
link_to "+ Service", "my_services/new", :account_id => acct.id
Entonces también tengo la lógica en el controlador de servicios:
def new
@my_service = MyService.new
if params[:account_id]
@my_service.account_id = params[:account_id]
end
end
Puede alguien ayudar con la forma correcta de hacer esto? Todavía no he podido hacerlo funcionar con algunas cosas desagradables que probé.
EDITAR
Resulta que, si alguien está buscando en esta respuesta en el futuro, los recursos anidados (posiblemente con la opción shallow: true
en routes.rb) parece ser el camino a seguir. Mi routes.rb para esta parte ahora se ve así:
resources :accounts, shallow: true do
resources :services
end
Mis enlaces ahora el siguiente aspecto:
<%= link_to "+ Service", new_service_path(:service => { :account_id => @account.id }) %>
me pregunto si esto funcionará link_to "servicio", "? My_services/nueva account_id =" + acct.id –