Soy nuevo en Rails y trato de configurar un archivo de módulo para usarlo en la vista. Así que creo que el comportamiento correcto es definir el módulo como un ayudante dentro de un controlador y listo, debería estar funcionando. Sin embargo, ese no es el caso para mí. Aquí está la estructura.Rieles: incluye el módulo en el controlador, para usar en la vista
lib
functions
-- form_manager.rb
form_manager.rb:
Module Functions
Module FormManager
def error_message() ...
end
end
end
users_controller.rb
class UsersController < ApplicationController
helper FormManager
def new ...
Bueno, la estructura es igual que el anterior y cuando llamo al mensaje_error de new.html.erb
me da el error: uninitialized constant UsersController::FormManager
.
Entonces, antes que nada, sé que en rails 3 lib no se carga automáticamente. Suponiendo que no es obligatorio cargar automáticamente la carpeta lib, ¿cómo puedo hacer que funcione y qué me falta?
Por cierto, no digas que esta pregunta está duplicada. Te digo que he estado buscando esta mierda por casi 2 días.
Esto ha funcionado, ¡muchas gracias! :) Sin embargo, si elimino el helper no funciona, mejor déjalo como está :) Por cierto, ¿no hay otro método que no sea la carga automática? Porque creo que cuando se carga automáticamente, incluso si no está utilizando el módulo, se cargará de todos modos. Y una segunda pregunta: ¿debería enumerar todos los métodos en el módulo como lo hizo en el método incluido? (Quiero decir, como m.helper_method: create_form, m.helper_method: destroy_form etc ...) –
Hm, no funciona sin 'helper'? Extraño. Actualizó la publicación con las respuestas. Deberías haber hecho la pregunta antes, lamento que hayas desperdiciado 2 días en esto :( – shime
No funciona sin carga automática también. Creo que tendré que quedarme con la autocarga. ¡Gracias de nuevo! –