小编MrT*_*rus的帖子

条件before_action/before_filter需要"proc"吗?

看哪,一个before_filter:

class ThingController < ApplicationController
  before_filter :check_stuff, :if => proc {Rails.env.production?}
end
Run Code Online (Sandbox Code Playgroud)

在最近的一次代码审查中,我被问到:"这proc是否需要这个?" 答案似乎是'是',但这是一个合理的问题,我打算通过引用Rails文档或指南或者使用条件before_filter(现在是别名before_action)来回答它.

我找不到任何东西.该动作控制器指南提到:only/ :except,而不是:if/ :unless.

如果失败了,我可以指出代码中的某个地方是否涵盖了这一点?它简单提到这里,但更多的是如何:only:except被处理,而不是:if:unless.

before-filter ruby-on-rails-4

39
推荐指数
4
解决办法
2万
查看次数

watir-webdriver等待页面加载

使用watir-webdriver,如何在点击链接后等待页面加载?

目前我正在做的事情:

sleep n
Run Code Online (Sandbox Code Playgroud)

但这并不理想,因为页面响应变化很大.

是否有方法来测试页面是否准备就绪或页面中是否存在某个元素.我理解在正常的watir gem中有Watir::Waiter.wait_until或类似的东西,但我在webdriver版本中看不到这一点.

webdriver watir firewatir safariwatir watir-webdriver

17
推荐指数
2
解决办法
2万
查看次数

使用Jbuilder和Rails 3提高渲染性能

我正在使用的应用程序使用JSON对象或其集合来响应大多数请求.我们正在使用Jbuilder来构建这些响应.渲染的数据量相当大(各种嵌套结构中的数千个对象 - 一旦格式化并完全展开,典型响应就有多达10,000行JSON).根据NewRelic的说法,这种渲染花费了大量的时间 - 约占总请求时间的1/3.

我正在寻找某种指南,提示或其他资源,以帮助我确保我从JBuilder获得最佳性能.如果有可用于Jbuilder与RABL或其他类似工具的性能比较,我也很好奇.

编辑:我发现了一个抱怨Jbuilder性能的GitHub问题,但是任何人提出的唯一实际建议是"不要使用Jbuilder".好吧,实际上,他们使用稍微强一些的语言,但仍然没有说明为什么 Jbuilder如此缓慢,可以做些什么(如果有的话)绕过它,或者同一任务的其他工具如何比较.

performance json rendering ruby-on-rails-3

10
推荐指数
1
解决办法
5690
查看次数

使用Doorkeeper访问当前客户端应用程序

我正在使用Doorkeeper在我正在构建的基于Rails的API上管理客户端应用程序.我有一个控制器操作,我想检查有关提交操作正在处理的请求的客户端应用程序的一些信息.

Doorkeeper是否提供了一个帮助器或其他简单的方法来访问(在控制器中)门卫::应用程序,它正在处理请求?我想象一下Devise的'current_user'方法的类比.

如果不存在这样的帮助,我怎样才能获得这些信息?

oauth-2.0 ruby-on-rails-3 doorkeeper

8
推荐指数
1
解决办法
2705
查看次数

为什么 Ruby 会“包含”?嵌套在 if/end 条件中时表现不同吗?

在我看来,以下三个示例在逻辑上是等效的,并且应该产生相同的结果。

print "Enter your string: "
my_string = gets.chomp

#Example 1
my_string.include? ("j" or "J")
puts "1. Your string includes a j or J." 

#Example 2
if
  my_string.include? ("j" or "J")
  puts "2. Your string includes a j or J." 
end

#Example 3
if
  my_string.include? ("j") or my_string.include? ("J")
  puts "3. Your string includes a j or J." 
end
Run Code Online (Sandbox Code Playgroud)

以下是大写 J 的结果。

Enter your string: Jack
1. Your string includes a j or J.
3. Your string includes a j …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

3
推荐指数
1
解决办法
239
查看次数