如何在Rails 2.3.5中从模型中呈现部分

我有一个Rails 2.3.5应用程序,我试图从模型中呈现几个部分(我知道,我知道 – 我不应该)。 我这样做的原因是我将Comet服务器(APE)集成到我的Rails应用程序中,需要根据Model的事件(例如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”调用的方法的Module中。

有谁知道如何解决这个问题?

谢谢

我们使用render_anywhere gem并且对它感到满意。

来自README:

 require 'render_anywhere' class AnyClass include RenderAnwhere def build_html html = render :template => 'normal/template/reference', :layout => 'application' html end end 

包括这两个模块就足够了。 也许你忘了设置default_url_options[:host] ? 没有它你可以使用_path助手,但不能使用_url助手。

包括这些模块并检查它是否在irb ,也许它会引导您找到正确的解决方案。