小编Tho*_*emm的帖子

在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
查看次数

Ruby中命名参数(命名方法参数,关键字参数)的当前状态是什么?

我听说过命名方法参数将是Ruby 2.0中的功能改进之一.有人可以让我介绍他们目前在Ruby 2.0中建立的语法吗?

ruby methods arguments ruby-2.0

7
推荐指数
1
解决办法
207
查看次数

什么时候Ruby中的`| =`有用吗?

今天我|=第一次看到了,我正在努力了解它是如何工作的以及它什么时候有用.

一些实验表明:

var |= nil
# => false
var |= false
# => false
var |= true
# => true
var |= 1
# => true
var |= nil
# => true
var |= false
# => true
var
# => true
Run Code Online (Sandbox Code Playgroud)

在Github的html-pipeline gem中找到.

  def link_to_mentioned_user(login)
    result[:mentioned_usernames] |= [login]
    url = File.join(base_url, login)
    "<a href='#{url}' class='user-mention'>" +
    "@#{login}" +
    "</a>"
  end
Run Code Online (Sandbox Code Playgroud)

我假设它的|=作用类似于一个受保护的赋值||=,但是将转换的返回值强制转换为布尔值. 这意味着只要var是假的或未定义的,就会对表达式进行求值,并赋予对布尔值的返回值.一旦var |= some_truthy_expression被调用,vartrue进一步调用 …

ruby

2
推荐指数
1
解决办法
145
查看次数