表列名也是ruby保留关键字

时间:2014-07-03 20:06:20

标签: ruby-on-rails ruby factory-bot

我正在使用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服务进行监控测试时测试失败。

我如何使这项工作?

由于

1 个答案:

答案 0 :(得分:2)

正如其他人所评论的那样,你为这个专栏使用不同的名字会更容易,但是如果你想坚持下去,你可以使用add_attribute使factory_girl工作。你的工厂看起来像:

factory :time_zone do
  id 4
  name "Eastern"
  abbreviation "EST"
  utc "-5"
  add_attribute :alias, "America/New_York"
end