ruby-on-rails - 表列名也是 ruby​​ 保留关键字

标签 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 服务监控测试时测试失败。

我该如何完成这项工作?

谢谢

最佳答案

正如其他人评论的那样,如果您为该列使用不同的名称,您的生活会更轻松,但是如果您想坚持使用它,您可以使用 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/

相关文章:

ruby-on-rails - 无法安装 Twilio gem - libxml 问题

ruby-on-rails - 如何在工厂中保存局部变量

rspec - 如果在描述 block 中调用,为什么工厂女孩会创建重复项

ruby-on-rails - 工厂/固定设备与简单Model.create(...)?

javascript - 像 rails 这样的部分只在纯 javascript 中完成,并且纯粹在客户端。 - IE。没有服务器

ruby-on-rails - 在 Rails 3 中使用 PostgreSQL JSON 列类型

ruby-on-rails - 如何获取我的 Heroku 站点的 DNS 记录以与 Google Apps 配合使用?

ruby-on-rails - 如何在 rails 中通过命令行运行 rake 任务

ruby-on-rails - Rails:ActiveRecord::AssociationTypeMismatch 错误

ruby - ruby 中的全局变量有多全局化?