2011-01-19 12 views
5

Me gustaría definir un método de ayuda, my_method, que estará disponible dentro de los métodos BuyersController (como index, create, e.t.c.).Rieles: ¿Dónde definir un método auxiliar que estará disponible para varios controladores?

he intentado definirlo en app/helpers/application_helper.rb pero no funcionó:

undefined method `my_method' for #<BuyersController:0x26df468> 

Debe estar en algún lugar compartido porque quiero utilizarlo en otros controladores también. Es por eso que probé app/helpers/application_helper.rb.

¿Cuál es el lugar correcto para definirlo?

Respuesta

11

Debería estar en app/controllers/application_controller.rb

El app/helpers/application_helper.rb es para compartidos vista ayudantes.

+4

Creo que Misha está pidiendo métodos disponibles para los controladores ** y ** vistas. Un método en 'ApplicationController' estará disponible para todos los controladores pero no para sus vistas. – edgerunner

+0

En realidad, no estaba interesado en métodos para vistas. –

1

Debe incluir el módulo auxiliar de aplicaciones en su controlador de aplicaciones para que sus métodos estén disponibles en todas partes (todos los controladores y vistas) durante una solicitud.

class ApplicationController < ActionController::Base 
    helper ApplicationHelper 
    … 
end 

Ver los documentos de la API para el helper método

2

A partir de Rails 3 también se puede llamar view_context.my_method dentro de su controlador

Cuestiones relacionadas