Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何设置本地化路由规范的区域设置?_Ruby On Rails_Rspec_Localization - Fatal编程技术网

Ruby on rails 如何设置本地化路由规范的区域设置?

Ruby on rails 如何设置本地化路由规范的区域设置?,ruby-on-rails,rspec,localization,Ruby On Rails,Rspec,Localization,我已根据设置了本地化路线 但是,在运行路由规范时,没有设置默认区域设置,从而导致错误,例如 Failure/Error: it { expect(edit_user_path(1)).to eq("/users/1/edit") } ActionController::UrlGenerationError: No route matches {:action=>"edit", :controller=>"users", :id=>nil, :locale=>1} m

我已根据设置了本地化路线

但是,在运行路由规范时,没有设置默认区域设置,从而导致错误,例如

Failure/Error: it { expect(edit_user_path(1)).to eq("/users/1/edit") }

ActionController::UrlGenerationError:
  No route matches {:action=>"edit", :controller=>"users", :id=>nil, :locale=>1} missing required keys: [:id]
在谷歌搜索了很多之后,我几乎没有找到测试本地化路由的最佳实践。有人能给我指点好文章吗

具体来说,我想知道:

  • 如何设置路由规范的默认区域设置,以便 上面的示例正确设置了ID键
  • 是否有一种简单的方法可以测试路由是否存在于所有允许的地区,而不存在于不允许的地区。或者,这是否需要向每个布线规范文件添加一个循环
  • e、 g

    ['en','fr'].each do |locale|
      expect(edit_user_path(1, locale: locale)).to eq("/#{locale}/users/1/edit")
    end
    
    ['en','fr'].each do |locale|
      expect(edit_user_path(1, locale: locale)).to eq("/#{locale}/users/1/edit")
    end