ruby-on-rails - 关系的未定义方法 `find_or_initialize'

标签 ruby-on-rails ruby ruby-on-rails-4 rspec

我已经从 Rails 3.2 迁移到 Rails 4。我有这个:

  MyModel.find_or_initialize_by_field1("fdsfdsfds")

现在我有了这个

  MyModel.where(field1: "fdsfdsfds").find_or_initialize

现在在测试中导致异常:

   undefined method `find_or_initialize' for #<ActiveRecord::Relation []>

但是在指南中,它没有说明应该在那里的其他内容。如何解决?

最佳答案

发生这种情况是因为当返回的结果是一个空数组时,您无法对其调用 find_or_initalize 方法。尝试:

   MyModel.where(field1: 'asdfasdfasdf').first_or_initialize

关于ruby-on-rails - 关系的未定义方法 `find_or_initialize',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39577232/

相关文章:

ruby-on-rails - rails 复位单柱

ruby-on-rails - check_box_tag 默认选中记住我

javascript - 尝试单击下拉列表中的链接,该链接只能通过将鼠标悬停在元素上来访问

ruby-on-rails - 无方法错误 : undefined method `fetch' for "QLite version 3.x":String

ruby-on-rails - 在开发模式下设置 ssl on rails 4 app

elasticsearch - 在Elasticsearch中自动完成和搜索

ruby-on-rails - 从模型中提取逻辑并将结果保存到数据库的真正好的模式是什么?

jquery 文件上传 rails "Error Empty file upload result"

ruby - 使用 EB deploy 管理多个 AWS 账户

ruby - 无法在 ubuntu 中构建 gem native 扩展?