相关疑难解决方法(0)

在Rails 4中渲染rake任务/后台作业/模型中的部分/视图

我已经阅读了很多关于在rake任务/后台作业/模型中渲染Rails部分和视图的内容.我在Stackoverflow和Web上发现的绝大多数事情描述了在Rails 3中工作的方法,但它们似乎过时了,我没有让它们工作(即使花了很多时间进行实验).

那么,如何在Rails 4中渲染后台作业中的部分?

这是迄今为止我已经研究过的最好的方法(在控制台中演示).

c = ApplicationController.new
result = c.render_to_string(partial: 'tweets/tweet', locals: {tweet: Tweet.first})
# =>
#   Tweet Load (0.8ms)  SELECT "tweets".* FROM "tweets" ORDER BY "tweets"."id" ASC LIMIT 1
#   Author Load (0.6ms)  SELECT "authors".* FROM "authors" WHERE "authors"."id" = $1 ORDER BY "authors"."id" ASC LIMIT 1  [["id", 1]]
#   Status Load (0.6ms)  SELECT "statuses".* FROM "statuses" WHERE "statuses"."twitter_id" = 367523226848866304 LIMIT 1
#   Rendered tweets/_tweet_body.html.slim (17.5ms)
#   Rendered tweets/_resolved_tweet.html.slim (23.7ms)
#   Rendered tweets/_tweet.html.slim (28.1ms)
# ActionView::Template::Error: …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-4

24
推荐指数
1
解决办法
9055
查看次数

如何在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})
Run Code Online (Sandbox Code Playgroud)

这允许我渲染不是用户助手的简单部分,但是如果我尝试在我的部分中使用link_to,我会收到一条错误说明:

undefined method `url_for' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我确保传递给"project_path(project)"的对象不是nil.我也试过包括:

include ActionView::Helpers::UrlHelper
include ActionController::UrlWriter
Run Code Online (Sandbox Code Playgroud)

在包含进行上述"render"调用的方法的Module中.

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

谢谢

ruby ruby-on-rails partials models

5
推荐指数
1
解决办法
1441
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

models ×1

partials ×1

ruby-on-rails-4 ×1