Как визуализировать частичное из модели в Rails 2.3.5 - PullRequest
5 голосов
/ 09 июня 2010

У меня есть приложение на Rails 2.3.5, и я пытаюсь визуализировать несколько Partials внутри Модели (я знаю, я знаю - я не должен). Причина, по которой я это делаю, заключается в том, что я интегрирую сервер Comet (APE) в мое приложение Rails и должен выдавать обновления на основе событий модели (например, after_create).

Я пытался сделать это:

ActionView::Base.new(Rails::Configuration.new.view_path).render(:partial  => "pages/show", :locals => {:page => self})

Это позволяет мне отображать простые партиалы, которые не являются помощниками пользователей, однако, если я пытаюсь использовать link_to в своей части, я получаю сообщение об ошибке:

undefined method `url_for' for nil:NilClass

Я убедился, что объект, передаваемый в "project_path (project)", не равен nil. Я также пытался в том числе:

include ActionView::Helpers::UrlHelper
include ActionController::UrlWriter

в модуле, который содержит метод, который выполняет вышеупомянутый вызов "render".

Кто-нибудь знает, как обойти это?

Спасибо

Ответы [ 2 ]

7 голосов
/ 16 сентября 2011

Мы используем камень render_anywhere и были довольны им.

от README:

require 'render_anywhere'

class AnyClass
  include RenderAnwhere

  def build_html
    html = render :template => 'normal/template/reference',
                  :layout => 'application'
    html
  end
end
0 голосов
/ 11 июня 2010

Включая эти два модуля должно быть достаточно. Может быть, вы забыли установить default_url_options[:host]? Без него вы можете использовать _path помощников, но не _url помощников.

Включите эти модули и проверьте, работает ли он в irb, возможно, это приведет вас к правильному решению.

...