小编gtd*_*gtd的帖子

Rails中request.remote_ip和request.ip有什么区别?

正如标题所示,您可以使用这两种方法获取客户端的IP.我想知道是否有任何差异.谢谢.

在源代码中有

"/usr/local/rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/action _dispatch/http/request.rb"257L,8741C

def ip
  @ip ||= super
end

# Originating IP address, usually set by the RemoteIp middleware.
def remote_ip
  @remote_ip ||= (@env["action_dispatch.remote_ip"] || ip).to_s
end
Run Code Online (Sandbox Code Playgroud)

但我真的不知道其含义.

ruby rack ruby-on-rails

68
推荐指数
3
解决办法
4万
查看次数

为需要SSL/TLS的请求发送的正确HTTP响应是什么

我正在设计一个RESTful API,其中一些调用是通过HTTP公开的,有些需要API密钥和HTTPS加密.我正在考虑如果HTTP请求被发送到其中一个私有资源,应该发送什么响应代码.到目前为止,跳出来的唯一一个是412 - Precondition Failed,但是标准表明前提是由请求者而不是服务器强加的.

对于这种情况是否有适当的响应代码,或者我只需要放弃并执行400

rest ssl https http httpresponse

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

gemspec中test_files配置的目的是什么

RubyGems的规格参考说:

单元测试文件的集合.当用户请求宝石进行单元测试时,它们将作为单元测试加载.

但是没有gem test命令,与files包装中使用的配置不同,我没有看到任何明显的地方使用它.谷歌似乎也没有发现任何事情.

在gem中指定test_files有什么意义吗?

rubygems

22
推荐指数
1
解决办法
1291
查看次数

如何一次运行多个Rails单元测试

我经常运行各种测试组,如:

rake test:units
rake test:functionals
Run Code Online (Sandbox Code Playgroud)

我还想运行单独的测试文件或单独的测试:

ruby -Itest test/unit/file_test.rb
ruby -Itest test/unit/file_test.rb -n '/some context Im working on/'
Run Code Online (Sandbox Code Playgroud)

还有:

rake test TEST=test/unit/file_test.rb
Run Code Online (Sandbox Code Playgroud)

我甚至在我的Rakefile中创建了自定义分组:

  Rake::TestTask.new(:ps3) do |t|
    t.libs << 'test'
    t.verbose = true
    t.test_files = FileList["test/unit/**/ps3_*_test.rb", "test/functional/services/ps3/*_test.rb"]
  end
Run Code Online (Sandbox Code Playgroud)

我还没想到的是如何在命令行运行多个临时测试.换句话说,我如何将test_files注入rake任务.就像是:

rake test TEST=test/unit/file_test.rb,test/functional/files_controller_test.rb
Run Code Online (Sandbox Code Playgroud)

然后我可以运行一个带有任意参数的shell函数并运行快速ruby -Itest单一测试,或者rake如果有多个文件则执行任务.

ruby ruby-on-rails testunit

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

厨师部署?

我有兴趣从Capistrano转换为Chef,但我有一些问题将所有部分组合在一起.

我已经关注了http://wiki.opscode.com/display/chef/Quick+Start并且能够启动EC2实例knife.就代码部署而言,看起来好像我想做http://wiki.opscode.com/display/chef/Deploy+Resource中的内容,唯一的问题是,该页面上没有提到它在哪个目录中提到/文件部署/to/path代码块应该去.

我遇到的另一个问题是了解如何在设置服务器后部署代码更改.也许我只是习惯了我当前的工作流程(git push && cap deploy),但我能说的最好的是,在我提交更改后,我应该ssh进入服务器并运行sudo chef-client?有些事情感觉不对.没有相应的上限,即chef deploy

最后(也许这有点困难),我希望将多个rails应用程序部署到单个服务器上.在每个应用程序的回购中保留某种厨师配置文件以描述其部署的细节似乎是谨慎的,但我不确定那将如何与chef-repo /托管服务器进行交互.每个应用程序都是一个角色吗?根据我对事物运作方式的理解,我对'chef-client'试图在运行时部署所有应用程序的想法感到有些不安.随着git push && cap deploy我敢肯定,我什么部署的.而某些其他应用程序存储库可能不处于可部署状态.是否有办法在此设置中部署一个应用程序?

git ruby-on-rails amazon-ec2 chef-infra

11
推荐指数
2
解决办法
6202
查看次数

没有这样的文件来加载Rails 3的捆绑器错误

我有一个Rails 3应用程序准备好进行分期.

我还没有设置VPS主机.因为我计划在最初几个月在共享主机上拥有所有内容.

问题:

cd myapp包检查结果:

The Gemfile's dependencies are satisfied
Run Code Online (Sandbox Code Playgroud)

乘客错误:

Error message:
    no such file to load -- bundler
Exception class:
    LoadError
Run Code Online (Sandbox Code Playgroud)

关于共享主机的令人沮丧的事情是我必须在config.ru上添加这些行:

ENV['GEM_HOME'] = '/home/username/.gems'
ENV['GEM_PATH'] = '$GEM_HOME:/usr/lib/ruby/gems/1.8'
Run Code Online (Sandbox Code Playgroud)

仍然没有运气.同样没有这样的文件加载捆绑器错误出现.

有人有这个工作吗?Rails 3,Debian,共享主机(dreamhost)?

我可以继续在Slicehost/Fivebean上注册,但在此之前,我想知道为什么会出现这个错误.

谢谢.

ruby dreamhost ruby-on-rails-3

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

那些具有"iframe = true&width = 80%&height = 80%"查询参数的请求有什么用?

我正在运行Rails 3.2应用程序.我查看了Google网站管理员工具,看到了很多随机页面的HTTP 502错误.奇怪的是,所有这些都?iframe=true&width=80%&height=80%作为查询参数被抓取:

例如http://www.mypage.com/anypage?iframe=true&width=80%&height=80%

当然,我不会在内部链接到那些页面,必须是外部的.检查谷歌,在这里证明我 - 我看到很多其他页面都有相同的问题.

看起来像外部服务创建这些链接,但为什么??

rack ruby-on-rails http request

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

是否可以预先计算 git 提交哈希,以便将其放置在提交本身中?

我正要从网站管理员中删除一项我认为没有人在使用的功能。不过,我想留言以防万一有人仍在使用它。我打算用以下内容替换 HTML 模板:

<p>This feature has been disabled.  If you need it back please ask engineering to revert #1234567890abcdef<p>
Run Code Online (Sandbox Code Playgroud)

显然我意识到这可以通过两次提交轻松完成。然而,我认为从密码学角度来看这是一个有趣的问题。

假设您只能修改哈希本身,那么满足此属性的哈希实际存在的可能性有多大?当你缩短哈希值时(因为 git 允许唯一的前缀),这样的哈希值的可能性可能会增加。6 个字符的前缀的概率是多少?找到它有多难?

git cryptography sha

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

什么是一个很好的开源软件包,用于在大型Rails站点上构建灵活的垃圾邮件检测?

我的网站越来越大,它开始通过各种渠道吸引大量垃圾邮件.该网站有许多不同类型的UGC(个人资料,论坛,博客评论,状态更新,私人消息等).我正在进行各种缓解措施,我希望以闪电般的方式进行部署,以使垃圾邮件发送者相信我们不是一个有价值的目标.我对我正在做的功能有很高的信心,但是一个缺失的部分就是一次性杀死所有旧的垃圾邮件.

这就是我所拥有的:

  • 大的好/坏语料库(5位数不好,6或7位数字好).很多垃圾邮件都有非常可靠的指纹,事实上我已经忽略它6个月有助于:)
  • 部署到AWS的大型模块化Rails站点.它不是一个巨大的流量站点,但我们在SOA的开始运行8个实例.
  • Ruby,Redis,Resque,MySQL,Varnish,Nginx,Unicorn,Chef,都在Gentoo上

我的要求:

  1. 我希望它在数据量方面表现得相当好(因此我对纯ruby解决方案持谨慎态度).
  2. 我应该能够针对不同类型的内容训练多种分类(419-scam vs僵尸网络链接垃圾邮件)
  3. 我希望能够根据我们自己的侦探工作(模式匹配,IP重用等)添加手动因素
  4. 最终我想构建一个与Ruby一起使用的漂亮接口.如果这需要我的手弄脏C或其他什么,我可以处理它,但如果可以的话我会避免它.

我意识到这是一个漫长而模糊的问题,但我正在寻找的主要是一个好的包列表,其次是来自某个人的随机想法,这些人建立了一个类似的方法来处理它.

ruby linux soa spam bayesian

6
推荐指数
1
解决办法
489
查看次数

覆盖rake release任务以使用Gemfury

我在Gemfury上托管一个私有宝石,并希望覆盖rake release任务以推送到我的Gemfury私有URL而不是Rubygems.

我想保留Git标签的创建.

我应该开始的任何想法?

这是我的Rakefile的样子:

require 'bundler/gem_tasks'
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec)

task default: :spec
task test:    :spec
Run Code Online (Sandbox Code Playgroud)

gem rubygems ruby-on-rails rakefile

6
推荐指数
1
解决办法
1060
查看次数