【问题标题】:Rails Has One Rspec Test tells me Unitialized ConstantRails 有一个 Rspec 测试告诉我未初始化常量
【发布时间】:2013-01-23 23:26:55
【问题描述】:

我在两个模型之间有一个关系。这种关系有效,但问题是当我使用 shoulda 匹配器编写 Rspec 测试时,我得到了一个错误。

 Failure/Error: it { should have_one(:userresetpassword)}
 NameError:
   uninitialized constant User::Userresetpassword

我的代码在user.rb

has_one :userresetpassword

我的 rspec 测试

describe "associations" do
  it { should have_one(:userresetpassword)}
end

【问题讨论】:

    标签: ruby-on-rails ruby rspec constants shoulda


    【解决方案1】:

    您的关联命名错误,rails、should-matchers 或两者都很难从中猜出类名。

    你有两个选择。首先,最好将关联重命名为常规:

    has_one :user_reset_password

    这将允许 Rails 正确猜测类名 UserResetPassword

    其次,您可以简单地消除猜测并告诉 rails 类名是什么。仅当您不能或非常不想更改关联名称时,这才是可取的。

    has_one :userresetpassword, :class_name => "UserResetPassword"

    【讨论】:

    • require 'spec_helper' 在规范文件中。为简洁起见,我只是省略了它。
    • 看起来 shoulda 或 rails 不确定您想要的类名是什么,关联类的名称是什么?您的关联名称将表明它是Userresetpassword
    • 关闭,这里是UserResetPassword
    • 啊,不知道 Rails 可以做到这一点。谢谢。
    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 2015-04-12
    • 2023-04-02
    • 2015-10-18
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多