我正在使用 Factory Girl 来帮助创建测试记录。我遇到的问题是表中的一个字段被命名为“alias”,这是一个保留的 ruby 关键字。这就是我正在尝试做的事情:
factory :time_zone do
id 4
name "Eastern"
abbreviation "EST"
utc "-5"
alias "America/New_York"
end
运行测试时出现错误。
当我尝试使用 self.alias“America/New_York”时,这是我收到的错误。
Failure/Error: FactoryGirl.create(:time_zone, id: 4 , name:"Eastern" , utc:"-5") NoMethodError: undefined method `alias=' for #<TimeZone id: 4, name: "Eastern", abbreviation: "EST", utc: -5>
注意:self.alias 在我的本地计算机上确实有效,但使用 jenkins 服务监控测试时测试失败。
我该如何完成这项工作?
谢谢
最佳答案
正如其他人评论的那样,如果您为该列使用不同的名称,您的生活会更轻松,但是如果您想坚持使用它,您可以使用 add_attribute
让factory_girl 工作。您的工厂将如下所示:
factory :time_zone do
id 4
name "Eastern"
abbreviation "EST"
utc "-5"
add_attribute :alias, "America/New_York"
end
关于ruby-on-rails - 表列名也是 ruby 保留关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24562466/