我正在用工厂女孩帮助创建测试记录我遇到的问题是表中的字段中有一个名为'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 :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/

10-14 05:01