ruby on rails - restful - ¿Dónde poner los métodos Ruby helper para los controladores Rails?
rutas en ruby on rails (5)
Debe definir el método dentro de ApplicationController
.
Tengo algunos métodos de Ruby que ciertos (o todos) los controladores necesitan. Intenté ponerlos en /app/helpers/application_helper.rb
. Lo he usado para los métodos que se utilizarán en las vistas. Pero los controladores no ven esos métodos. ¿Hay otro lugar en el que debería ponerlos o debo acceder a esos métodos de ayuda de forma diferente?
Usando los últimos rieles estables.
La respuesta de Ryan Bigg es buena.
Otra posible solución es agregar ayudantes a su controlador:
class YourController < ApplicationController
include OneHelper
include TwoHelper
end
¡Atentamente!
Para Rails 4 en adelante, las preocupaciones son el camino a seguir. Hay un artículo decente aquí http://richonrails.com/articles/rails-4-code-concerns-in-active-record-models
Básicamente, si miras en la carpeta de tu controlador deberías ver una subcarpeta de inquietudes. Crea un módulo allí a lo largo de estas líneas
module EventsHelper
def do_something
end
end
Luego, en el controlador simplemente inclúyalo
class BadgeController < ApplicationController
include EventsHelper
...
end
Puede llamar a cualquier método de ayuda desde un controlador utilizando view_context
, por ejemplo
view_context.my_helper_method
debe definir métodos dentro del controlador de la aplicación, si tiene pocos métodos, entonces puede hacer lo siguiente
class ApplicationController < ActionController::Base
helper_method :first_method
helper_method :second_method
def first_method
... #your code
end
def second_method
... #your code
end
end
También puede incluir archivos auxiliares de la siguiente manera
class YourController < ApplicationController
include OneHelper
include TwoHelper
end