Ruby 为什么不是';我的入选确认通过了吗?

Ruby 为什么不是';我的入选确认通过了吗?,ruby,rspec,sinatra,Ruby,Rspec,Sinatra,这应该是不需要动脑筋的。我有一个带有RSpec的Sinatra应用程序,由于某种原因,我的验证在包含验证时失败 这是我的代码: class Employee < ActiveRecord::Base validates :department, inclusion: { in: w%(Sales, Finance, Marketing) } end 此测试失败,因为部门字段未“包括在列表中”。这是令人恼火的,因为无论我在哪个领域都失败了。像这样的错误通常来自于一些简单的事情 我遗漏

这应该是不需要动脑筋的。我有一个带有RSpec的Sinatra应用程序,由于某种原因,我的验证在
包含
验证时失败

这是我的代码:

class Employee < ActiveRecord::Base
   validates :department, inclusion: { in: w%(Sales, Finance, Marketing) }
end
此测试失败,因为部门字段未“包括在列表中”。这是令人恼火的,因为无论我在哪个领域都失败了。像这样的错误通常来自于一些简单的事情


我遗漏了什么?

似乎您有语法错误,我认为
w%
应该是
%w

您的
%w
语法与实际列表冲突。
%w
不需要逗号,而是将它们添加到列表中(这不是您想要的)。移除它们

 %w(Sales, Finance, Marketing)
 => ["Sales,", "Finance,", "Marketing"] 
vs


似乎您有语法错误,我认为
w%
应该是
%w

您的
%w
语法与实际列表冲突。
%w
不需要逗号,而是将它们添加到列表中(这不是您想要的)。移除它们

 %w(Sales, Finance, Marketing)
 => ["Sales,", "Finance,", "Marketing"] 
vs


%w
是构建字符串数组的捷径。我认为您正在尝试构建一个字符串数组,如下所示:

["Sales", "Finance", "Marketing"]
在这种情况下,使用
%w
的正确形式是:

%w(Sales Finance Marketing)
有关Ruby中的
%w
语法的更多信息,请参阅

另外,请查看正确使用
%w
的位置

因此,要解决您的问题,请将
Employee
类更改为如下所示:

class Employee < ActiveRecord::Base
   validates :department, inclusion: { in: %w(Sales Finance Marketing) }
end
class Employee
%w
是构建字符串数组的捷径。我认为您正在尝试构建一个字符串数组,如下所示:

["Sales", "Finance", "Marketing"]
在这种情况下,使用
%w
的正确形式是:

%w(Sales Finance Marketing)
有关Ruby中的
%w
语法的更多信息,请参阅

另外,请查看正确使用
%w
的位置

因此,要解决您的问题,请将
Employee
类更改为如下所示:

class Employee < ActiveRecord::Base
   validates :department, inclusion: { in: %w(Sales Finance Marketing) }
end
class Employee
欢迎来到堆栈溢出。在标题中添加诸如“(Sinatra,RSpec)”之类的标签是没有必要的,或者是特别可取的。取而代之的是,依赖于你为问题定义的标签,或者自然地而不是人为地将它们添加到标题中。欢迎使用Stack Overflow。在标题中添加诸如“(Sinatra,RSpec)”之类的标签是没有必要的,或者是特别可取的。相反,要么依赖于你为问题定义的标签,要么自然而不是人为地将它们加入标题中。