Rspec - user_path(user)缺少必需的键:[:id]

时间:2016-04-11 13:48:44

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

在浏览器中一切正常,但Rspec测试失败并显示以下消息:

的ActionController :: UrlGenerationError:        No route matches {:action=>"show", :controller=>"users", :id=>nil, :locale=>#<User id: 1, email: [...] } missing required keys: [:id]

我的测试失败:

subject {create(:client)} #from factory_girl

visit user_path(subject)

要通过测试,我必须明确写出id:visit user_path(id: subject)

奇怪的是,它之前一直很好,直到我为铁路等运行bundle update。这个问题也出现在我的其他模型中(简介,工作等)。

我找不到解决办法,任何帮助都会非常感激。

编辑 routes.rb

Rails.application.routes.draw do

  scope "(:locale)", locale: /en|fr/ do
    # all my routes
  end
end

application_controller.rb

before_action :set_locale

  def set_locale
    I18n.locale = params[:locale] || I18n.default_locale
  end

  def default_url_options(options = {})
    { locale: I18n.locale }.merge options
  end

0 个答案:

没有答案