小编Mat*_*ham的帖子

如何在请求规范中存根ApplicationController方法

我需要current_user在Rspec/capybara请求规范中存根方法的响应.该方法在ApplicationControllerhelper_method中定义并使用helper_method.该方法应该只返回一个用户ID.在测试中,我希望这种方法每次都返回相同的用户ID.

或者,我可以通过设置session[:user_id]规范(这是什么current_user返回)来解决我的问题...但这似乎也不起作用.

这些都可能吗?

编辑:

这是我得到的(它不工作.它只运行正常的current_user方法).

require 'spec_helper'

describe "Login" do

   before(:each) do
     ApplicationController.stub(:current_user).and_return(User.first)
   end

  it "logs in" do
    visit '/'
    page.should have_content("Hey there user!")
  end

end
Run Code Online (Sandbox Code Playgroud)

也不工作:

require 'spec_helper'

describe "Login" do

  before(:each) do
    @mock_controller = mock("ApplicationController") 
    @mock_controller.stub(:current_user).and_return(User.first)
  end

  it "logs in" do
    visit '/'
    page.should have_content("Hey there user!")
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails capybara

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

如何使Rails片段缓存过期?

一段时间后,我将如何使片段缓存过期.我偶然发现了timed_fragment_cache宝石的参考,但似乎过时了.

ruby ruby-on-rails

25
推荐指数
1
解决办法
1万
查看次数

使用Siege和AB测试的准确度如何?

我很想知道我可以依靠Siege和AB的负载测试结果.我意识到他们不会考虑静态资产(图像,JS,CSS),但假设所有这些东西都是从CDN提供的,如果Siege/AB告诉我我可以满足200个并发用户,那么我有什么理由不应该这样做不相信吗?我没有考虑任何其他因素,例如运行测试的机器可能有任何限制吗?

apache performance performance-testing

21
推荐指数
1
解决办法
1万
查看次数

向大量收件人发送电子邮件的最佳做法(Rails + SendGrid)

我将从Rails应用程序发送批量电子邮件,并计划使用SendGrid.我假设最好向每个收件人发送一封单独​​的电子邮件(而不是为所有收件人使用BCC).如果这是真的,我应该使用像DelayedJob这样的东西来排队转发到SendGrid的消息,还是可以安全地一次抛出500条消息?谢谢!

ruby-on-rails heroku sendgrid

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

如何安装Python/Django模块?

我对Django一无所知,但我需要在OSX中运行现有的项目.

从我运行的项目目录中python manage.py runserver获取错误:Error: No module named cms.

好像INSTALLED_APPS常量(在settings.py中)定义了所需的模块......但是如何安装dang东西呢?

是否有批量安装依赖项的标准方法(如Ruby的Bundler)?

python django

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

调试Heroku应用程序时如何避免大量提交

在尝试使用Heroku上的应用程序解决bug时,我通常最终得到一些与bug修复过程相关的Git提交,因为我需要提交更新才能推送到Heroku.在推送到项目的主要共享仓库之前,有没有聪明的方法来清理这些提交?

git ruby-on-rails heroku

14
推荐指数
1
解决办法
1245
查看次数

Rails 3.2流媒体

我正在从Rails 3.2开始进行流式下载(CSV),并且遇到了初始页面请求需要很长时间的问题.以下控制器代码说明了我的问题:

      self.response_body = Enumerator.new do |y|
        10_000_000.times do
          y << "Hello World"
        end
      end 
Run Code Online (Sandbox Code Playgroud)

有了上面的内容,响应看起来就像它的流式传输(来自服务器而不是支持它......在我的情况下,Unicorn).也就是说,在它开始流式传输之前,它会比我想要的时间长得多.如果我将其更改为以下内容,则启动速度会更快:

      self.response_body = Enumerator.new do |y|
        1000.times do
          y << "Hello World"
        end
      end
Run Code Online (Sandbox Code Playgroud)

我的理解是响应应该从循环的第一次迭代开始,但似乎较大的循环导致初始加载时间延长.如果每次迭代都按原样输出,那么不管它有多少总迭代次数,都不应该花费相同的时间来启动流式处理过程.

感谢您的任何见解!

编辑:

这是我正在尝试的技术的解释.也许我误解或错过了一步?:http: //facebook.stackoverflow.com/questions/3507594/ruby-on-rails-3-streaming-data-through-rails-to-client/4320399#4320399

编辑:

认为 Rack-Cache可能会导致我的问题......我可以针对个别请求将其关闭吗?

编辑和解决:

我对Rack-Cache错了.我只需要添加self.response.headers['Last-Modified'] = Time.now.ctime.to_s我的回复.

ruby streaming ruby-on-rails stream ruby-on-rails-3

9
推荐指数
1
解决办法
3269
查看次数

如何使用Twitter搜索API获取推文的位置

statuses/user_timelineTwitter API 的一部分将地理位置数据与每个推文一起作为"地点"返回.另一方面,搜索API不会返回此位置数据(据我所知).有没有办法通过搜索API获取位置数据?

twitter geolocation

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

如何处理Rails Gem的配置

我正在努力发布我的第一个Gem for Rails.这很简单,但我需要提供一些设置配置选项的权限.我想让用户在'config/initializers'中添加一些内容并与我的gem绑定.

所以,问题是:在Rails gem中提供配置选项是否有最佳实践?

ruby rubygems ruby-on-rails

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

可以在没有'heroku run console'的情况下在Heroku上运行单个Rails命令吗?

我经常需要在Heroku上运行命令"Rails.cache.clear",我发现这样做的唯一方法是首先运行"heroku run console",然后运行命令.有没有办法一步到位?

ruby-on-rails heroku

6
推荐指数
2
解决办法
2732
查看次数