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 基本设计规范 的相关文章

  • Rails 6:每个用户只能创建一个配置文件

    我目前正在开发 Rails 6 应用程序 我有以下关联 用户有一个配置文件 并且配置文件属于用户 当编辑用户的配置文件时 我最终为该用户提供了两个配置文件 我希望每个用户只有一份个人资料 编辑表单 profile edit html erb
  • 如何使用 form_for 将参数传递给控制器​​ ruby​​ on Rails

    我有一个用户模型和一个课程模型 用户登录后可以自己上传课程 但是 我希望管理员能够为用户上传 以防用户不够精明 我的想法是对用户上传和管理员上传使用相同的创建操作 并使用 if 语句 管理员将在用户 id视图页面中为他上传之前选择用户 然后
  • Rails 中的 Google freebusy api 调用无法识别参数

    我试图从我的主日历中查找所有空闲 忙碌时间 但我无法让查询识别我的参数 在我的控制器中我有 freetimes client execute api method gt service freebusy query parameters g
  • 如何使用 Cucumber 和 Rspec 测试 Rails 3 引擎?

    如果这个问题有点主观 我深表歉意 我正在尝试找出使用 Cucumber 和 Rspec 测试 Rails 3 引擎的最佳方法 为了测试引擎 需要 Rails 3 应用程序 这是我目前正在做的事情 通过运行以下命令将 Rails 测试应用程序
  • 是否可以禁用特定 jQuery Ajax 调用的 Turbolinks 以防止页面刷新和滚动?

    我有一个 Rails 5 应用程序 非常想使用 Turbolinks 在应用程序中 有几个 PATCH ajax 调用 它们只是用新数据更新服务器 但不需要担心更新页面的状态 每当这些 ajax 请求返回时 Turbolinks 就会刷新页
  • 搜索逻辑和虚拟属性

    假设我有以下模型 Person
  • Rails error_messages 帮助器

    这是一段很常见的代码 First name br error messages是一个辅助方法 但我很难找到它的文档 为什么呢 我在这里找到它们 error messages 具有相同的参数错误消息 http apidock com rail
  • Ruby/Rails - 如何创建类并从控制器访问它

    我一直在尝试使用一些不同的 gem 在 Rails 3 中显示谷歌地图 但遇到了一些问题 幸运的是我发现了这个https github com YouthTree bhm google maps https github com Youth
  • 如果你使用belongs_to而没有相应的has_one,会发生什么?

    我有一个核心模型Item 以及一个从自定义源 例如 RSS feed 填充它的脚本 在 feed 中 每个项目都用一个标识guid 在我的系统中 项目只有一个自动生成的id首要的关键 我想要 比方说 ItemFeedInfo那个地图guid
  • STI 在遗传类型之间发生变化。

    在我的模型中 我像这样使用 STI 车辆型号 vehicle rb class Vehicle lt ActiveRecord Base end 车型 car rb class Car lt Vehicle end 总线模型 bus rb
  • Ruby on Rails:有关 validates_presence_of 的问题

    我的基于 ActiveRecord 的模型中有一个关系 如下所示 belongs to foo 我的模型应该始终在其中定义 foo 才能有效 我的问题是 当使用 validates presence 时 使用哪一个是合适的 validate
  • 没有 Gem 的 Rails 分页

    我的任务是在不使用 gem 的情况下为 Rails 项目创建 前 10 个 后 10 个 最新 和 最旧 链接 在控制器中 我可以显示表中第一组 最新的 10 项 before action set page only index def
  • 使用 ActiveRecord::Relation 时的 RSpec 匹配器

    所以这是我要测试的方法 def self by letter letter where lastname LIKE letter order lastname end 简单问一下 letter 后面的百分号到底有什么作用 跟格式化有关系吗
  • 如何验证单选按钮?

    我的 Rails 应用程序中有一个单选按钮 我想编写一个 java 脚本代码 在未选择任何选项时验证这一点 在你的 votes 类中做类似的事情 class Myvotes lt ActiveRecord Base validates vo
  • 从表单中选择枚举以设置角色

    Ruby on Rails 4 1 我正在将 Devise 与枚举角色一起使用 目前 它在创建用户时使用默认角色 我想在创建用户的表单中添加一个字段来设置枚举角色 I read this https github com RailsApps
  • 从标记访问 json 属性 - gmaps4rails

    我正在升级到 gmaps4rails v2 我似乎无法从 javascript 访问标记 json 属性 这在我使用的先前版本 1 5 6 中有效 具体来说 内置控制器 users User all hash Gmaps4rails bui
  • 如何测试 rspec 中的 put

    我想做的是跑步ruby sayhello rb在命令行上 然后接收Hello from Rspec 我已经得到了这个 class Hello def speak puts Hello from RSpec end end hi Hello
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • 与heroku配合使用的统计引擎

    我有一个 Heroku Rails 应用程序 需要处理一些重要的数字 并且我需要使用像 R 这样的统计库 更糟糕的是 MatLab 我正在寻找以下任何问题的答案 是否有不需要二进制文件的功能齐全的统计包 GEM 是否可以将 R 二进制文件作
  • Rails 未定义“2013-03-06”的方法“strftime”:字符串

    我收到错误 2013 03 06 的未定义方法 strftime 字符串 当尝试使用 strftime 从字符串 2013 03 06 正常显示日期 2013 年 6 月星期日 3 日或类似的日期 时 在我的 index html erb

随机推荐

  • 运行 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