En mi aplicación Rails 3 utilizo Ajax para conseguir un formato HTML:¿Es posible llamar al método que usa "content_tag" del controlador en Rails 3?
$.get("/my/load_page?page=5", function(data) {
alert(data);
});
class MyController < ApplicationController
def load_page
render :js => get_page(params[:page].to_i)
end
end
get_page
utiliza el método content_tag
y debería estar disponible también en app/views/my/index.html.erb
.
Desde get_page
utiliza muchos otros métodos, que encapsula toda la funcionalidad en:
# lib/page_renderer.rb
module PageRenderer
...
def get_page
...
end
...
end
y la incluyó como esa:
# config/environment.rb
require 'page_renderer'
# app/controllers/my_controller.rb
class MyController < ApplicationController
include PageRenderer
helper_method :get_page
end
Pero, puesto que el método content_tag
no está disponible en app/controllers/my_controller.rb
, Obtuve el siguiente error:
undefined method `content_tag' for #<LoungeController:0x21486f0>
tanto, he intentado añadir:
module PageRenderer
include ActionView::Helpers::TagHelper
...
end
pero luego llegué:
undefined method `output_buffer=' for #<LoungeController:0x21bded0>
¿Qué estoy haciendo mal?
¿Cómo solucionaría esto?
lo que si se incluyen: 'ActionView :: :: Ayudantes TagHelper 'en tu controlador. Por cierto, parece que usas mi respuesta de las preguntas de tus ayudantes :) – apneadiving
@apneadiving: Incluí 'ActionView :: Helpers :: TagHelper' como puedes ver arriba. Sí, su respuesta a mi otra pregunta parece razonable, excepto el hecho de que 'get_page' trata de la representación, pero se define en el controlador :) –
Maldita sea, mi comentario fue realmente inútil, lo siento, volveré a mirar más tarde :) – apneadiving