2011-03-17 7 views
9

¿Dónde se verifican los parámetros de URL que no son atributos del modelo (como página, página, sort_mode) en Ruby On Rails? En el controlador o en el modelo? Por ejemplo, cuando realiza una consulta de base de datos más complicada, puede verificar los parámetros y establecer los valores predeterminados en el controlador y luego hacer, por ejemplo, MyModel.search(page, per_page, order, sort_mode, query), o configuraría la validación dentro del modelo y simplemente pasaría los parámetros no manipulados. MyModel.search(params)?Dónde comprobar y validar parámetros que no son del modelo en Rails

¿Y cómo reporta ese parámetro a la vista? Por ejemplo, un parámetro sort_mode que debería dar como resultado una pequeña flecha en la vista para la dirección de clasificación. ¿Comprueba y limpia el hash de params y obtiene los datos en la vista de params, o utiliza una variable de instancia propia para eso?

Respuesta

7

Tiendo a desinfectar params en el controlador.

class ApplicationController < ActionController::Base 
    before_filter :sanitise_params 

    protected 

    def sanitise_params 
    # tidy up 
    # set defaults 
    end 
end 

buena práctica que los modelos declaran su interfaz y le toca a los controladores a hablar con ellos de la manera correcta. De esa forma tienes una clara separación de tus capas.

Ver ayudantes están ahí para ayudar con las vistas. Aquí están some examples que vienen como parte del ActionView de ActionPack. Puede poner el suyo en app/helpers

Cuestiones relacionadas