I18N 基本设计规范

2023-12-03

我是 RSpec 的新手,正在尝试编写一个简单的测试来显示 Devise 正在工作。我选择了一个随机页面,并想要编写一个测试来显示未登录的用户被重新重定向到 /users/sign_in。

describe OrgsController do

  describe "GET index when not logged in" do
    it "redirects to new_user_session_path" do
      user = FactoryGirl.create(:user)
      user.confirm!
      sign_in user
      sign_out user
      get :index
      response.should redirect_to new_user_session_path
    end
  end

  before(:each) do
    user = FactoryGirl.create(:user)
    user.confirm!
    sign_in user
  end

  # remaining specs

end

I get "Expected response to be a redirect to <http://test.host/users/sign_in?locale=en> but was a redirect to <http://test.host/users/sign_in>."

我已经实现了 i18n,并在我的应用程序控制器中:

before_filter :set_i18n_locale_from_params

在以下方面实现这一目标的最佳方法是什么:

  • 获取匹配的路线?
  • 再次登录和退出用户以避开 before(:each) 块的影响,这很黑客吗?
  • 总体方法?

获取控制器测试/规范以正确设置区域设置的问题是一个长期存在的问题,请参阅:如何设置功能测试的语言环境 default_url_options (Rails)

从你写的来看,它看起来像get :index默认情况下不设置区域设置,因为default_url_options在控制器测试/规格中不起作用。尝试上面链接中提到的解决方案之一以使路由匹配。另请参阅 github 上的讨论:https://github.com/rspec/rspec-rails/issues/255

对于它的价值来说,这是补丁我目前在规范/测试中使用来将语言环境自动传递到当前语言环境的路由:

class ActionDispatch::Routing::RouteSet
  def url_for_with_locale_fix(options)
    url_for_without_locale_fix(options.merge(:locale => I18n.locale))
  end

  alias_method_chain :url_for, :locale_fix
end

关于黑客行为before(:each)您拥有的块设置,我真的建议使用上下文块来分隔案例,其中一个上下文没有使用之前的过滤器登录用户,而另一个上下文则使用之前的块登录用户。您现在的设置确实令人困惑有人试图看看发生了什么事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

I18N 基本设计规范 的相关文章

  • 如何加载 UrlHelper 和 Rails 中的路线?

    我想包括路线和link toPORO 中的方法 在控制台中测试这个时 我遇到了这个 如果我在没有路由助手的情况下包含 UrlHelper 一切似乎都工作正常 ruby 1 9 3 rc1 001 gt Rails version gt 3
  • ror 中的多种布局

    昨天刚开始使用 Ruby on Rails 在我的 layouts application html erb 中 我有 div class conta div
  • 默认:Rails 资源路由的排除选项

    一个小问题 我正在将 Rails 用于 REST API 但由于它是 RESTful API 所以我并不真正需要 new or edit我的任何资源的路由 因为人们只会完全通过自动 JSON 请求而不是图形方式与此 API 交互 例如 不需
  • 何时使用node.js、sinatra、rails? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这 3 种语言 框架的最佳用途是什么 混合所有 或 2 个 有用吗 如果您正在构建一个完整的 Web 应用程序 您可能应该使用 Rails 因为
  • 如何在 Ruby 中创建自定义排序方法

    我想指定一个自定义块方法 通过评估两个属性来对对象数组进行排序 然而 经过多次搜索 我没有找到任何没有的例子 lt gt 操作员 我想比较a to b if a x less than b x return 1 if a x greater
  • Rails 4 - 每次运行 rake db:migrate 命令时,rake 命令都会显示弃用警告

    pinterestclone rake db migrate DEPRECATION WARNING Sprockets method register engine is deprecated Please register a mime
  • 为什么 Rails 应用程序在底部显示数据库信息?

    我创建了一个博客 每当我添加帖子时 帖子索引页面底部总会显示数据库中的记录列表 home html erb 像这样
  • 未知属性:user_id

    我在执行 current user stories build 期间收到错误未知属性 user id class User lt ActiveRecord Base has many stories class name Story for
  • 用于 S3 私有文件的 ActiveStorage

    到目前为止 我一直在使用 Paperclip 将一些文件上传到 S3 其中一些文件不是公开的 Paperclip 允许通过以下位将一些文件作为私有文件上传 has attached file image styles large 2000x
  • Rails 如何使用 send_data 导出数据,然后重定向到新页面?

    我有一个 Rails 应用程序 允许用户下载生成的 CSV 文件 下载文件后 我想将用户重定向到新的 URL 或操作 有没有在 send data 之后进行重定向的技巧 我想做这样的事情 这不起作用 send data output typ
  • rake db:migrate db:reset 和 db:schema:load 之间的区别

    和 之间的不同rake db migrate and rake db reset我很清楚 我不明白的是如何rake db schema load与前两者不同 只是为了确保我在同一页面上 rake db migrate 运行尚未运行的迁移 r
  • 更改 Active Storage 的默认 URL

    我们可以更改从活动存储创建的默认 永久 url 以重定向到 S3 类似于rails active storage representations 我不喜欢网址中的框架名称 Thanks UPDATE 最近 Rails 6 中增加了一个可配置
  • <%=h ... %> 在 Rails 中意味着什么?

    I found here http api rubyonrails org classes ActionView Helpers RecordTagHelper html以下语法 什么是h means 它用于转义标签的输出以避免跨站点脚本
  • Rails 4 可安装引擎,找不到文件“jquery”

    我正在创建一个 Rails 可安装引擎插件 它使用 gem jquery rails 我在 gemspec 文件中添加了这段代码 s add dependency jquery rails gt 3 0 1 and run bundle i
  • Rails:Passenger Standalone 适合生产部署吗?

    问题标题几乎概括了这一点 我找不到任何好的资源来概述使用 Phusion Passenger Standalone 进行 Rails 应用程序部署的优点 缺点 它与运行 Passenger Nginx 或 Passenger Apache
  • Rails: :inverse_of 和关联扩展

    我有以下设置 class Player lt ActiveRecord Base has many cards inverse of gt player do def in hand find all by location hand en
  • 关联的验证错误消息变得简单

    我的应用程序中有相当多的belongs to关联 其中一些是可选的 即关联可能为零 一些是强制性的 关联必须是有效的父记录 我最初的方法是使用我自己的验证方法来验证给定的 id 此处为强制关联 belongs to category val
  • HTTP 状态码 302

    我正在用 Ruby 开发 Rails 后端 并且想将数据发布到该服务器 但如果我用 PAW 发出后请求 我就会被重定向 我是 Http 请求的新手 有人可以向我解释一下功能以及如何使用 http post 请求吗 我想在我的服务器数据库 s
  • Rails 中过滤长日志参数

    我允许用户在我的网站上上传文件 其中一些文件可能非常大 并且占用了我的日志文件的很大一部分 所以我不想让它出现 我知道 config filter parameters password 过滤某些参数 但问题是参数位于这样的哈希中 pers
  • Rails 基本 Base64 身份验证

    我正在尝试复制此 GET curl 请求 curl D X GET H Authorization Basic dGVzdEB0YXByZXNlYXJjaC5jb206NGMzMTg2Mjg4YWUyM2ZkOTY2MWNiNWRmY2Nl

随机推荐

  • 运行 make 时出错:缺少分隔符(您的意思是 TAB 而不是 8 个空格吗?)

    我正在尝试获取 PHPphar我的 Debian VM 上安装的命令行工具如何here描述 1 下载php src 我假设它在 tmp php src中 2 建立目录 tmp phar 3 保存this作为 tmp php src ext
  • Python 二进制转换为十六进制

    我正在尝试将 python 中的二进制文件 gzipped 协议缓冲区对象 转换为字符串转义方式的十六进制字符串 例如 xFA x1C 我都尝试过 repr
  • 如何动态组合 linq 查询?

    假设我有一个表 其中包含字符串中的格式化值 nvarchar 柱子 这些值应该是由某个 const 符号分隔的字符串 让它成为分号 例如 12 0 5 dog four values separated by a semi colon or
  • AppWidgetProvider:未调用 onEnabled 方法

    我有显示来自内容提供商的数据的小部件 我想知道内容提供商中的数据何时发生变化 据我所知 这样做的方法是 context getContentResolver registerContentObserver 但是当我添加小部件的第一个实例时
  • Swift 选项 - 从“x”到“x”的条件转换警告始终成功

    我想知道是否有办法关闭 避免 xcode 中的 黄色 警告if let NSUserDefaults构造其中键具有已知值的结构 例如 if let x NSUserDefaults standardUserDefaults integerF
  • 带投影的 CreateCriteria 不会选择所有列

    我的问题就像Grails 投影未返回所有属性且未分组 我有以下标准 def sharedDocumentsInstanceList SharedDocuments createCriteria list params createAlias
  • Angular HttpClient 方法不转换响应类型

    刚刚开始使用新的 HttpClient 但每当我拨打电话时 响应都不会使用提供的类型进行转换 我尝试了接口和类 现在我假设您只能使用接口来转换为响应 因为这是我们在文档中看到的唯一示例 我宁愿使用一个类在模型中包含一些辅助函数 有没有办法以
  • Git 工作流程 - 设置构建流程

    免责声明 我已经使用 Git 一段时间了 但仍然觉得它令人困惑 我正在为一个项目设置构建过程 但在更新 git 存储库时遇到问题 我在服务器上创建了存储库 假设为 C MyProject 我使用 SourceTree 将我的计算机连接到存储
  • 地图和过滤器内的 setState

    最近在学习react native中的map和filter方法 有一个问题 找到数组的特定行 带过滤器 后 如何仅设置该特定行的特定字段 我有 this state post id 0 author Duffy Duck delay 1 p
  • 使用 RTC 源代码管理获取已更改文件的文件名、位置和作者

    我正在尝试访问给定流的已更改文件的文件名 位置和作者 下面的代码是我到目前为止所拥有的 看看api文档 这似乎不可能 这可以使用 java api 或其他方法来实现吗 IChangeSetSearchCriteria c IChangeSe
  • 在 C# 中定义操作系统版本

    我有一个问题 我找不到在编译时检测 Windows 版本的方法 我的目的是创建一个依赖于接口的可执行文件 该接口仅在特定版本的Windows中定义 因此 为了制作可执行的跨 Windows 版本 我希望能够为特定 Windows 版本定义包
  • Python while 循环中的准确睡眠/延迟

    我有一个 while True 循环 它将变量发送到外部函数 然后使用返回的值 该发送 接收过程具有用户可配置的频率 该频率是从外部 ini 配置文件中保存和读取的 我尝试过 time sleep 1 Frequency 但考虑到其他地方使
  • Java 中的作用域规则

    有人可以帮助我理解 Java 中的作用域规则吗 这显然是无效的 int i 0 System out println i fine of course System out println i syntax error i被宣布在 而且在外
  • 访问动态分配数组的越界元素/无 SegFault

    我正在用 C 语言开发一个程序 它使用链表数组 原始哈希表 作为数据类型来表示某些日期信息 该数组有 12 个元素 对应于一年中的月份 每个月都有一个包含数据节点的链表 我开发了使用这种数据类型的模块 并且运行良好 后来我发现我正在访问越界
  • GCM 演示服务器向设备发送消息引发 401 错误

    与许多其他 java 和 android 新手一样 我尝试在 Windows 上运行 gcm 演示服务器和 gcm 演示客户端 使用 eclipse 运行虚拟设备 使用 tomcat 作为网络服务器 我在注册和取消注册设备方面没有任何问题
  • objectAtIndexedSubscript 在 IOS5 中可用吗?

    文档称它在 MacOS 1 08 中可用 那么故事是怎样的呢 iOS5呢 这是一个非常重要的选择器 因为 self 5 实际上会变成 self objectAtIndexedSubscript 5 除非我遗漏了一些东西 在 NSOrdere
  • 如何使用初始值设定项列表构造 std::array 对象? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用初始化器列表初始化成员数组 您可以使用初始值设定项列表构造 std array std array
  • UIDatePicker 设置最大日期

    我使用此代码来阻止用户超出我设置的限制 在视图中确实加载了 NSDate Date NSDate date DatePickerForDate setMinimumDate Date DatePickerForDate setMaximum
  • JavaScript forEach 回调

    我正在深入研究 Javascript 回调之类的东西 我遇到了 forEach 函数 函数说明了一切 循环遍历列表中的每个对象 当我查看文档我看到以下语法 arr forEach callback thisArg 并且文档中还提到了参数 c
  • I18N 基本设计规范

    我是 RSpec 的新手 正在尝试编写一个简单的测试来显示 Devise 正在工作 我选择了一个随机页面 并想要编写一个测试来显示未登录的用户被重新重定向到 users sign in describe OrgsController do