【问题标题】:Ruby hash access via symbol not working通过符号进行的 Ruby 哈希访问不起作用
【发布时间】:2013-07-09 06:51:27
【问题描述】:

创建了一个如下所示的控制器规范 需要'spec_helper'

describe UsersController do
  it "redirects to user and creates cookie" do
    post :create, user: FactoryGirl.attributes_for(:user)
    expect(response.cookies[:remember_token]).to eq(User.last.remember_token)
    response.should redirect_to User.last
  end
end

这不起作用。 cookie 为零。

但是 response.cookies['remember_token']) 工作正常,即找到 cookie。

我的印象是符号会“转换”为字符串表示形式。

【问题讨论】:

    标签: ruby-on-rails rspec


    【解决方案1】:

    仅适用于 HashWithIndifferentAccess,它是 Rails 构造。

    http://api.rubyonrails.org/classes/ActiveSupport/HashWithIndifferentAccess.html

    普通的 Ruby 散列并不等同于字符串键和符号键。

    【讨论】:

    • 当我设置值时这个问题我使用符号而不是字符串... cookies.permanent[:remember_token] = .... 所以我本来希望用一个符号也是?
    【解决方案2】:

    好像你这样分配cookies['remember_token'] = 'some value',但它应该为每个案例返回“一些值”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 2014-10-21
      • 2014-04-09
      • 2013-04-18
      • 2013-01-17
      • 2016-04-21
      • 1970-01-01
      相关资源
      最近更新 更多