2012-06-13 16 views
6

Es un proyecto completamente nuevo. He aquí los comandos exactos me he encontrado:Por qué el método de acción del controlador de rieles requiere el parámetro

  1. rails new MyProject
  2. bundle install
  3. rails generate controller Image

He añadido esta ruta:

  1. root :to => "image#process"

He añadido esta función a la ImageController (image_controller.rb)

def process 
    render :nothing => true 
end 

Y finalmente, hemos eliminado el defecto index.html. Cuando ejecuto el proyecto, tiene un error que dice que el proceso espera 0 parámetros, no 1. Por lo tanto, modifico el método para decirme qué parámetro está tratando de enviar para procesar.

def process(arg) 
    p arg 
    render :nothing => true 
end 

La cadena "proceso" se imprime en la pantalla. He hecho varios proyectos de Rails antes y nunca he encontrado esto. ¿Extrañé un paso en algún lado? ¿Es esto algo nuevo en Rails 3.0.10? ¿O tal vez causado por Ruby 1.9.2? Creo que suelo usar 1.8.7.

Respuesta

11

No puede nombrar una acción como process, este es un método interno para controladores de rieles, nómbrelo de otra manera.

Hay un montón de otros nombres que no puede usar para acciones de controlador como render, params, request. Lamentablemente, no hay una lista de estas cosas.

+0

Oh, ni siquiera pensé en eso. ¡Gracias! – Spidy

+0

Ahh .. Me ahorró mucho tiempo. ¡Gracias! – rdsoze

1

Para futuras referencias, en caso de que no lo esté utilizando, se puede ver todos los métodos internos y clases aquí: ruby doc with nav on top right

me ayuda al momento de retirar nombres.

Cuestiones relacionadas