如何使用shoulda匹配器来测试多态关联?

2024-04-26

我正在使用带有rails的shoulda-matchers,并创建一个名为“comments”的模型和另一个名为“post”的模型。评论是多态的。

当我在这样的帖子中使用 shoulda 匹配器进行测试时

    it {should have_many(:comments)}

它收到此消息

预计帖子有一个 has_many 协会称为评论(Comment 没有 post_id 外键。)

在我的评论模型中我有

  belongs_to :commentable, :polymorphic => true

如何测试我的多态关联以便帖子可以有很多评论?

附注应该匹配器文档说它支持多态关联。


您不需要在测试中做任何特殊的事情should它应该可以工作。在您的帖子模型上确保您设置了:as option:

has_many :comments, :as => :commentable

这将确保 Rails 使用正确的列名称commentable_id and commentable_type而不是post_id.

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

如何使用shoulda匹配器来测试多态关联? 的相关文章

  • Rails 资产 - 保留许可证注释

    如何防止 Uglifier 删除某些文件中的某些注释 我希望缩小和压缩代码 但我也希望许可注释保持不变 来自 uglifyJS 的文档 nc or no copyright 默认情况下 uglifyjs 将在生成的代码中保留初始评论标记 假
  • Rails:从视图内渲染视图(不是部分视图)

    我有一个对两者都有响应的控制器html and js The htmlview 渲染整个页面 包括页眉和页脚 而js仅替换 main 除了页眉和页脚之外 两种格式呈现相同的内容 我可以用三个文件获得这种效果 show html erb di
  • 在 Rails 上制作 ruby​​ 占用更少的内存

    我正在尝试运行 Ruby on Rails 项目 redmine http www redmine org 在 VPS 上 它可以工作 但需要相当多的内存 与 VPS 的其余部分相比 rails 应用程序的使用量非常少 我的服务器上也运行着
  • Rails 模型测试 - 模拟与工厂

    Rails 测试模拟对象与使用工厂对象的最佳实践是什么 应该嘲笑only当模型可能转到外部源时使用 或者 您是否仅在测试实际模型并使用模拟来处理其他所有内容时才使用工厂 例如 如果我们有一个包含客户和订单的销售系统 那么当我们测试客户模型时
  • application.css 未作为资产提供

    编辑4 5和6 8小时后 欢迎任何更多的想法 也许这个错误已经被知道并解决了 但是当你在 app assets stylesheets 的 css erb 文件中有这个时 我得到了我在编辑 2 3 中描述的行为 li background
  • 如何将openId与rails 3中的设备集成

    我是 Rails 新手 刚刚完成了一个简单的设计设置 我正在寻求实现一些仍然使用核心设计功能集但允许通过 openid 提供商登录而不是 使用电子邮件或用户名注册 的东西 我如何开始使用最新的设计宝石和rails 3 看看devise op
  • 使用 prawnto_2 gem 加载图像时,RAILS_ROOT 不再有效

    我正在将我的应用程序从 Rails 3 0 升级到 Rails 3 1 我已经尽可能地将旧插件转为 gems 其中包括用这个漂亮闪亮的新插件替换旧的 prawnto 插件对虾 2 https github com forrest prawn
  • AJAX Rails 验证

    我的表单和验证可以很好地处理常规的 http 请求 我希望它使用 AJAX 我知道我可以在客户端进行验证 但这似乎是多余的 因为我已经在模型中定义了验证 当用户填写表单时 我想就他们的条目向他们提供反馈 在 AJAX 表单中使用 Rails
  • Watir 脚本偶尔返回 Net::ReadTimeout 错误

    我有一个 Watir 脚本 偶尔会意外地返回此错误 Net ReadTimeout 我搜索了这个错误并发现这个问题 https stackoverflow com questions 47452276 watir get sometimes
  • Ruby on Rails:simple_form + Twitter Bootstrap 未显示

    我正在为我的网站上的新用户创建一个简单的注册表单 我已经运行了 simple form bootstrap 的安装 rails g simple form install bootstrap 但是 它仍然没有显示并呈现为正常的 simple
  • 使用pluginaweek的state_machine,我可以在事件期间引用activerecord对象吗?

    我正在尝试实现一个 挂起 事件 将对象转换为 挂起状态 但我需要能够 取消暂停 并返回到之前的状态 我向模型添加了 previous state 字段 但我看不到如何在事件块内访问它 这是我试图实现的基本逻辑 event suspend d
  • 在 Rails 3 和 ActionMailer 中,是否可以使用 TLS over SSL(不是 StartTLS)发送电子邮件?

    我想使用 ActionMailer 从我的铁路应用程序发送电子邮件 我有一个想要使用的现有邮件服务器 但它仅支持端口 465 上的 SSL TLS 但是 它不支持 StartTLS 通常在端口 587 上 谁能建议一种实现这一目标的方法 据
  • 未调用 C++ 重写函数

    我遇到了一个问题 即未调用重载函数 而是调用了基函数 我怀疑这与项目文件之间的划分方式有关 在文件 obj1 h obj1 cpp 中我有这样的东西 class obj1 public void print void obj1 print
  • 如何编写运行 Rails db:migrate 任务的 rake 任务?

    我想运行 db migrate VERSION 0 然后在我自己的 rake 任务中运行 db migrate 我对如何做到这一点感到困惑 我需要特殊的要求声明吗 我的 rake 任务将驻留在 Rails 应用程序的 lib tasks 目
  • 删除嵌套属性不起作用

    我似乎无法使用删除项目accepts nested attributes for命令 但我已经按照本教程 http railscasts com episodes 196 nested model form revised以及相关的git
  • Rails simple_form:自定义输入id

    我想把用Rails simple form生成的几个表单放在一页上 并用javascript对它们进行操作 然而 simple form 为表单中的各个输入生成了相同的 id 因此我想用我自己的 id 替换生成的 id 现在我有一行 和 H
  • 如何在测试环境中通过 URL 访问 ActiveStorage 对象?

    给定一个具有 ActiveStorage 附件的模型 class MyObject has one attached avatar end 在开发环境中 我能够将头像作为 StringIO 对象检索 obj MyObject new val
  • 如何设置管理员批准模型的编辑

    我需要一个普通用户可以编辑模型的系统 但编辑实际上只有在管理员批准后才会发生 我发现了一颗宝石 叫做纸迹 https github com airblade paper trail它确实有模型版本控制 但不具体支持我想要做的事情 我想知道其
  • 尝试使用 Rails 和 PostgreSQL 生成模型时,命令挂起且没有错误

    使用该命令时 rails generate model Event name string 什么也没发生 我必须按 CTRL c 我使用的版本是 红宝石 2 1 1p76 导轨4 1 0 PostgreSQL 9 3 4 Mac OS X
  • Correct_user 和 admin 的多个 before_filter 语句

    我有一个组资源 我正在尝试使用适当的授权来设置该资源 我试图实现的授权逻辑是这样的 只有群组成员才能查看他们的群组 管理员可以查看any组 以及采取其他行动 我尝试在组控制器中使用以下 before filter 语句来执行此操作 befo

随机推荐

  • 前摄器和异步写入

    升压asio http www boost org doc libs 1 46 1 doc html boost asio html实现基于前摄器设计模式ACE前摄器 http www cse wustl edu schmidt PDF p
  • 运行 .NET Core API Linux 环境启动配置文件

    所以我试图让 NET Core API 应用程序在不同的环境设置下运行 我一直在阅读文档 据我所知 我已按照说明进行操作 然而 当我在 VS 之外运行该服务时 由于无法找到连接字符串 它会崩溃 我显然错过了一些基本的东西 我已经设置了两个配
  • 为什么删除目标文件后写入文件描述符会成功?

    code int main int argc char argv int fd open test txt O CREAT O RDWR 0200 0400 if fd 1 printf failure to oepn exit 1 int
  • java.lang.ClassNotFoundException:com.google.gwt.user.client.rpc.RemoteService

    在 Tomcat 6 中部署 war 文件时出现以下异常 java lang ClassNotFoundException com google gwt user client rpc RemoteService 所以我尝试通过 webAp
  • 从上传的 csv 数据创建 dataTable 列定义

    M 尝试从上传的 csv 文件创建数据表 我面临的唯一问题是定义表列标题 目前我已经这样做了 手动定义标头 var table example DataTable columns title Number data Number title
  • 在 Swift 中执行 POST 请求

    我正在尝试做这样的事情 NSMutableURLRequest request NSMutableURLRequest requestWithURL NSURL URLWithString http google com request H
  • AttributeError:“Int64Index”对象没有属性“month”

    我有一些时间序列数据 包含三个独立的列 日期 时间 千瓦 如下所示 Date Time kW 3 1 2011 12 15 00 AM 171 36 3 1 2011 12 30 00 AM 181 44 3 1 2011 12 45 00
  • Firestore snapshotChanges DocumentChangeType“已删除”从未发送

    我正在使用 where 子句查询 Firestore 集合 并订阅 snapshotChanges 根据文档 我应该为添加 修改和删除的每个元素获取一个事件 我很好地得到了添加和修改的文档 但我从未得到删除的文档 这是我的代码的示例 thi
  • 使用 QueueLinearFloodFill 算法着色时留下空白

    我正在尝试在android中实现洪水填充算法 它的工作速度非常慢 所以我根据此链接尝试了队列线性洪水填充算法 Android中如何使用洪水填充算法 https stackoverflow com questions 16968412 how
  • 在 Firebase-ios-swift 中创建和附加数组

    如何在firebase 3 0中创建数组并在数组中执行append和delete功能 这是我正在寻找的数据结构 1 UserIds 0 12345 1 678910 2 1112131415 2 UserProfile 0 12345 0
  • React - JSX 语法问题,以及如何迭代地图并在换行符上显示项目

    我是一个 React 菜鸟 正在制作 ToDo 列表样式食谱列表应用程序 https fcc recipebox surge sh 我有一个功能组件 Item js 我使用 JSX 和映射函数来迭代每个配方项并显示它们 我希望每个菜谱项目都
  • 使用PHP通过FTP递归扫描目录和子目录

    我正在尝试创建目录中所有文件 及其大小 的列表 包括子目录中的所有内容 这些文件位于远程服务器上 所以我的脚本通过 FTP 连接 然后使用以下命令运行递归函数ftp chdir浏览每个目录 如果有其他方法可以做到这一点 我愿意接受建议 fl
  • 停止pandoc自动添加id

    我在用Pandoc对Markdown的扩展 http pandoc org MANUAL html pandocs markdown来生成 HTML 以下降价 test specificId test2 test3 生成以下 html h1
  • 如何使用 Xerces 同时使用 Maven 从 XSD 1.1 生成源

    我有一个带有断言标签的 XSD 文件 我读到 Xerces 支持带有这些标签的 XML Schema 1 1 草案 如何在我的 Maven 构建中使用实际的 Xerces 版本 而不是标准 Java 实现 使用 Xerces 版本的一种旧方
  • config_cache_enabled 错误

    使用 Zend 框架 2 1 当我设定 config cache enabled gt true在我的里面application config php 它返回以下错误 Warning var export does not handle c
  • 使用 SessionBean EJBObject 和 EJBHome 接口创建 EJB

    我对创建 EJB 感到困惑 我在互联网上看到了许多 EJB 示例 也看到了使用 SessionBean EJBObject 和 EJBHome 接口开发 EJB 的示例项目 在其他一些示例中 EJB 是在没有这些接口的情况下创建的 并且仅使
  • 如何获取数组中每个数字的阶乘值?

    我试图使用此方法获取数组中每个项目的阶乘值 但这仅输出一个值 任何人都可以帮助我找出我做错的地方吗 function mathh arr fn for i 1 i lt sizeof arr i arr2 arr2 i fn arr i r
  • 如何在 Jackson 和 Gson 之间转换日期?

    在我们的 Spring 配置的 REST 服务器中 我们使用 Jackson 将对象转换为 Json 该对象包含几个 java util Date 对象 当我们尝试使用 Gson 的 fromJson 方法在 Android 设备上反序列化
  • 如何在CSS中捏住一行的中间

    我正在尝试制作一条看起来几乎在末端有衬线的线条 本质上 我想让它在最末端变宽 在中间变细 只需使用 css 这实际上被证明是一个相当大的挑战 任何帮助 将不胜感激 到目前为止 我已经能够了解我想要如何使用 after伪选择器 但顶部没有运气
  • 如何使用shoulda匹配器来测试多态关联?

    我正在使用带有rails的shoulda matchers 并创建一个名为 comments 的模型和另一个名为 post 的模型 评论是多态的 当我在这样的帖子中使用 shoulda 匹配器进行测试时 it should have man