Ruby on rails Rails与包含枚举的类有很多关联

Ruby on rails Rails与包含枚举的类有很多关联,ruby-on-rails,enums,rspec-rails,Ruby On Rails,Enums,Rspec Rails,我有一门课,像这样: class Shower < ActiveRecord::Base has_many :capabilities, dependent: :destroy //more code end 现在,我正在尝试创建测试,以确保创建的功能有效或无效: require 'rails_helper' describe Capability do it "is invalid without required attributes" do capabili

我有一门课,像这样:

class Shower < ActiveRecord::Base
  has_many :capabilities, dependent: :destroy

  //more code
end
现在,我正在尝试创建测试,以确保创建的功能有效或无效:

require 'rails_helper'

describe Capability do
  it "is invalid without required attributes" do
    capability = Capability.create
    expect(capability).to_not be_valid
    expect(capability.errors.keys).to eq [:capability]
  end

  it "is valid with all required attributes" do
    shower = FactoryGirl.create :shower
    capability = shower.capabilities.create(capability: :mobile_supports_pusher)
    expect(capability).to be_valid
  end
end
但无论我为
功能
设置了什么值,它总是
为零
,我不确定这是因为我做得不对还是因为这是一个限制

例如,如果我执行
c=Capability.create!(功能:0)
在控制台中,它可以正确保存


有可能有这样的联系吗?基本上,我们希望一个
淋浴器
具有任意数量的
功能
,但对于枚举,如果这有意义的话,每个功能只能有一个。

您可以发布运行测试的输出吗?我在这里运行了您发布的代码,它可以正常工作。问题一定出在你没有发表的东西上。OT:您正在使用的命名有点混乱,特别是:
capability.capability
。依我看,这最好表现为HABTM关系,其中能力是一种查找。至少,我会将枚举重命名为类似于
name
。是的,我认为这实际上是由于数据库迁移出错导致测试失败。这有意义吗?
require 'rails_helper'

describe Capability do
  it "is invalid without required attributes" do
    capability = Capability.create
    expect(capability).to_not be_valid
    expect(capability.errors.keys).to eq [:capability]
  end

  it "is valid with all required attributes" do
    shower = FactoryGirl.create :shower
    capability = shower.capabilities.create(capability: :mobile_supports_pusher)
    expect(capability).to be_valid
  end
end