小编ste*_*och的帖子

是否可以使用修改nginx配置文件并在Heroku上使用X-Accel-Redirect?

在nginx网站上阅读这篇文章,我有兴趣以Apache或Lighttpd用户可能使用X-Sendfile头来帮助提供大文件的方式使用X-Accel-Redirect头.

我发现的大多数教程都要求你修改nginx配置文件.

  • 我可以修改Heroku上的nginx配置文件吗?如果是,如何修改?

其次,

  • 我在github上发现了这个X-Accel-Redirect插件,看起来它不需要手动更改nginx配置文件 - 它似乎让你在控制器代码中添加重定向位置 - 有谁知道这是否适用于heroku?直到今晚我都无法测试.

注意 - 我已经通过电子邮件向Heroku支持和goncalossilva发送电子邮件,询问他们相同的问题,但我不知道他们何时会回复我.我会回复他们告诉我的任何事情.

ruby-on-rails nginx heroku ruby-on-rails-3

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

Stackoverflow如何通过HTTP保持用户登录?

我注意到stackoverflow只在登录页面上使用SSL,并且可以通过HTTP发布问题/答案.

用户必须登录才能这样做,所以我想知道如果没有使用SSL,stackoverflow如何设法跟踪登录的用户.

目前我正在制作一个rails应用程序,它使用cookie跟踪登录状态.我一直认为你需要SSL来安全地做到这一点.但我是通过HTTP发布的,作为登录用户.

当我运行tcpdump -i eth0 -A然后访问stackoverflow时,我注意到一个名为'usr'的cookie ,并且该cookie以明文传输,没有SSL.如果我通过不安全的连接登录,如无线网吧,黑客/数据包嗅探器可以带我的usr cookie,并重播我的会话吗?

我想避免在我的rails应用程序中使用SSL(因为我的主机充电臂和腿来实现它),所以我想使用与stackoverflow相同的技术.我希望让用户无需SSL即可登录.

我猜这里正在使用数据库(或memcache/redis)会话存储.但是肯定还需要某种cookie吗?为什么这些cookie不必通过SSL发送?是否有其他事情在后台进行,使这些cookie对不同机器上的黑客造成多余影响?

cookies ssl session-cookies session-hijacking

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

安装gems时出错:无法加载此类文件 - zlib

我正在尝试在Mac OS Yosmite上安装bundler gem

~/code/hello gem install bundler
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我做了以下事情:

  • 通过自制软件安装zlib
  • 升级Rubygems
  • 重新安装RVM和Ruby 2.2.2
  • 切换到Rbenv和Ruby 2.2.2

这真的很有用.Ruby 2.2.1工作正常但2.2.2每当我尝试安装gem时都会导致这个问题.

有人有任何想法吗?

ruby gem

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

Rails和Rspec - 在表单提交失败时检查是否存在错误

我有一个Foo模型,其中:创建时需要名称.

我正在编写一个规范来测试验证

it 'should not create an invalid Foo' do
  fill_in "Name", :with=>""
  # an error message will be displayed when this button is clicked
  click_button "Create Foo"
end
Run Code Online (Sandbox Code Playgroud)

如何确认页面上是否存在错误消息?

我试过page.errors.should have_key(:name)但这不对.

我想我可以做page.should have_content("Name can't be blank")但我宁愿避免将我的集成测试与内容强烈耦合

rspec ruby-on-rails rspec2 ruby-on-rails-3

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

当密码也存在或已被更改时,Rails验证password_confirmation存在

我有以下用户模型:

class User < ActiveRecord::Base
  # Users table has the necessary password_digest field
  has_secure_password
  attr_accessible :login_name, :password, :password_confirmation

  validates :login_name, :presence=>true, :uniqueness=>true

  # I run this validation on :create so that user 
  # can edit login_name without having to enter password      
  validates :password,:presence=>true,:length=>{:minimum=>6},:on=>:create

  # this should only run if the password has changed
  validates :password_confirmation, 
            :presence=>true, :if => :password_digest_changed?
end
Run Code Online (Sandbox Code Playgroud)

这些验证并不像我希望的那样完成.可以执行以下操作:

# rails console
u = User.new :login_name=>"stephen"
u.valid? 
# => false
u.errors 
# => :password_digest=>["can't be blank"], 
# => …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails ruby-on-rails-3

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

Rails将块传递给辅助方法

Viget的实验室发布的文章要点,详细说明增加一个特别的类(如导轨辅助方法,.selected.active)的导航链接,如果它的URL当前路径相匹配.

您可以在布局中使用它,如下所示:

= nav_link "News", articles_path, {class: "btn btn-small"}

<!-- which creates the following html -->

<a href="/articles" class="btn btn-small selected">News</a>
Run Code Online (Sandbox Code Playgroud)

尼斯.我正在使用bootstrap,并希望在我的按钮中有一个图标,所以我需要生成以下html:

<a href="/articles" class="btn btn-small selected"><i class="icon-home"> </i> News</a>
Run Code Online (Sandbox Code Playgroud)

分享了要点并想出了一个简单的方法.我的fork允许开发人员将:inner_html:inner_class传递给helper,如下所示:

= nav_link "News", articles_path, {class: "btn btn-small"}, {inner_html: 'i', inner_class: 'icon-home'}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我不喜欢我的底层实现:

def link
  if @options[:inner_html]
    link_to(@path, html_options) do
      content_tag(@options[:inner_html], '', :class => @options[:inner_class]) + " #{@title}"
    end
  else
    link_to(@title, @path, html_options)
  end
end
Run Code Online (Sandbox Code Playgroud)

如您所见,我将新选项传递 …

ruby-on-rails

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

Rails控制器处理为*/*

我有一个js.erb文件,我执行ajax GET,如下所示:

$.get("<%= j @stored_location %>");
Run Code Online (Sandbox Code Playgroud)

一切都很好,但我的服务器日志显示:

Processing by XyzController#index as */*
Run Code Online (Sandbox Code Playgroud)

我知道" / "的意思是"任何格式",一切都运行得很好,所以我想知道是否有任何意义,试图确保Rails明确地处理这个动作:js.我是否需要在$.get通话中添加内容?我应该打扰吗?

ruby-on-rails ajax-on-rails

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

运行pip/easy_install时是否需要sudo?

我最近读过的所有python tuts告诉我要做这样的事情:

pip install tornado
pip install requests
Run Code Online (Sandbox Code Playgroud)

每次我这样做都会受到permission denied警告.但是一切都通常适用于我sudo.

是否需要sudo?如果是这样,为什么这么多教程说明没有提到呢?

在ruby中我们可以使用Rbenv或RVM进行安装,这两者都不需要使用sudo.在python中有任何等价物吗?或者暗示你应该永远sudo

python sudo python-2.7

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

使用大于号的 Ruby 安全运算符

我试图弄清楚如何在以下场景中使用 Ruby 的安全运算符:

if attribute_value && attribute_value.length > 255
Run Code Online (Sandbox Code Playgroud)

如果 attribute_value 为零,则以下内容不起作用:

if attribute_value&.length > 255

# NoMethodError: undefined method `>' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我明白为什么,但我想知道如何解决这个问题。以下工作,但它是丑陋的地狱:

if attribute_value&.(length > 255)
Run Code Online (Sandbox Code Playgroud)

这样做的推荐方法是什么?我想我可以做到以下几点:

if attribute_value&.length.to_i > 255
Run Code Online (Sandbox Code Playgroud)

对于这种情况,这还不错。还要别的吗?

ruby

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

Rails - 当模型验证失败时被 URL 更改混淆

我有一个用户资源,其中:name是模型上的必需属性。

如果我尝试创建一个没有名称的新用户,则验证失败并且错误消息按预期显示在表单顶部,页面的 URL 从/users/new, 变为/users?

直到今晚我第一次开始玩水豚时,我才注意到这种行为,并期望验证失败后的 current_path 为http://localhost:3000/users/new

我不明白为什么我的规范失败了:

it 'should not create an invalid user' do
  fill_in "Name", :with=>""
  click_button "Create User"
  current_path.should == new_users_path
end
Run Code Online (Sandbox Code Playgroud)

我已经验证它发生在我所有的其他 rails 应用程序中,所以我意识到这就是 rails 的工作方式,但我真的不明白这里发生了什么。为什么它会这样工作?为什么验证失败时路径会从new_users_path变为users_path

这让我非常困惑

ruby-on-rails

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