问题标签 [has-many-polymorphs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
331 浏览

ruby-on-rails - has_many_polymorphs 标记 - 适用于开发机器,不适用于生产!

我遇到了一个奇怪的问题,在我的开发机器上标记工作正常,但是当我部署到生产服务器时,我在日志中收到此错误:

production.log 文件中有一个条目指出 has_many_polymorphs 已加载,因此插件在生产机器上不可用。

我的 Google-fu 让我无法找到答案,所以如果有人知道可能出了什么问题,将不胜感激!

编辑:我应该提到在生产和开发中我使用的是同一个数据库。我下载了生产版本,并在开发机器上使用它,它工作正常。

0 投票
2 回答
558 浏览

ruby-on-rails - Rails has_many_polymorphs 反过来?

所以我设置了一些模型,每个模型都可以发表评论。我已经使用 has_many_polymorphs 设置了它,但是我开始遇到一些问题,它无法按照我认为的方式工作。

例如:

在这种情况下,删除项目时消息不会被删除,因为消息实际上是关系中的父级。

我对示例进行了一些简化,但还有其他模型具有消息,并且也有类似工作的附件。

什么是正确的设置方法,以便在删除父级时删除子级?我希望没有一百万张桌子,但我想不出另一种方法来做到这一点。

0 投票
2 回答
552 浏览

ruby-on-rails - 一个模型中有多个 has_many_polymorphs

我正在尝试定义has_many_polymorphs plugin从单个父级到相同子级的多个多态关系 ()。

笔记有很多查看者
笔记有很多编辑者
查看者可以是用户或组
编辑者可以是用户或组权限是具有, , , ,字段
的关联模型note_idviewer_idviewer_typeeditor_ideditor_type

只要我在 Note 模型中只定义了一个 has_many_polymorphs 关系,一切都会按预期进行

现在,当我添加第二个关系时,问题开始出现


我已经尝试改进定义,has_many_polymorphs但没有奏效。甚至没有用于ViewPermission < Permission和的 STI 模型EditPermission < Permission

感谢任何想法/解决方法/问题指针。

导轨 2.3.0

0 投票
1 回答
282 浏览

ruby-on-rails - “违反参照完整性”的 has_many_polymorphs 是什么意思?

我在各种类型的事件和许多事件has_many_polymorphs之间有关系。Candidate特别是,a 在创建时Candidate会创建一个Created事件。

当我运行单元测试时,一切都很好。当我运行我的功能测试时,一切都很好。当我运行我的集成(Cucumber)测试时,一切都很好。当我在生产中运行时,一切都很好。当我尝试在开发模式下运行(打开类重新加载)时,我得到

在相同(开发)环境中运行script/console,我看到该Event::Created对象与CandidateEvent交叉引用模型具有适当的关系。

这是怎么回事?

0 投票
1 回答
209 浏览

ruby-on-rails - has_many_polymorphs 安装后问题

在 has_many_polymorphs 安装后立即

每当我尝试执行诸如脚本/生成或脚本/服务器之类的东西时,我就会开始出现以下错误

感谢您对此的任何帮助,

帕维尔

0 投票
3 回答
967 浏览

ruby-on-rails - Rails 2:has_many:通过验证?

Rails 2.1.0(由于一些限制,目前无法升级)我正在努力实现这一目标。有什么提示吗?

  1. 一个项目通过join模型有很多用户
  2. 一个用户通过join模型拥有多个项目
  3. Admin 类继承 User 类。它也有一些管理员特定的东西。
  4. 管理员喜欢继承主管和操作员
  5. 项目有一名管理员,一名主管和多名操作员。

现在我想 1. 在单个项目表单中提交项目、管理员、主管和操作员的数据 2. 验证所有并在项目表单上显示错误。

方法是否正确?欢迎任何和所有建议。

0 投票
1 回答
369 浏览

ruby-on-rails - has_many_polymorphs 问题

我对 has_many_polymorphs 有疑问,也许你可以帮助我。

我有一些模型

但是在尝试获得某些问题的申请时,我看到以下内容

在日志中我看到

如何解决?

PS:Rails 2.3.5,Postgresql

0 投票
1 回答
361 浏览

ruby-on-rails - 在heroku上的acts_as_list postgres错误

我们使用 has_many_polymorphs 和acts_as_list。在本地一切正常,但在 heroku 上,每次调用几个 act_as_list 方法时都会出错。即由于添加或删除列表中的项目而更新具有新位置的许多记录的那些。

act_as_list 方法示例:

Postgres 错误示例

AdsPlacement.rb

0 投票
1 回答
2978 浏览

ruby-on-rails - Ruby on Rails 3:组合来自多个 has_many 或 has_many_through 关联的结果

我有以下型号。用户有 UserAction,一个可能的 UserAction 可以是 ContactAction(UserAction 是一种多态)。还有其他操作,例如 LoginAction 等。所以

这个想法是一个 ContactAction 加入两个用户(在应用程序中具有其他后果)并且总是有一个接收端和一个发送端。同时,一个 ContactAction 可以有不同的状态,例如过期、待处理等。

我可以说@user.contact_actions.pending@user.contact_requests.expired列出用户发送或接收的所有待处理/过期请求。这工作正常。

我现在想要的是一种加入这两种类型的 ContactAction 的方法。即@user.contact_actions_or_requests。我尝试了以下方法:

但所有这些都有一个问题,即不可能在关联之上使用额外的查找器或命名范围,例如@user.contact_actions_or_requests.find(...)@user.contact_actions_or_requests.expired

基本上,我需要一种方法来表达具有两条不同路径的 1:n 关联。一个是User -> ContactAction.user_id,另一个是User -> UserAction.user_id -> UserAction.user_actionable_id -> ContactAction.id。然后将结果 (ContactActions) 加入一个列表中,以便使用 named_scopes 和/或查找器进行进一步处理。

由于我在几十个地方都需要这种关联,因此为每种情况编写(和维护!)自定义 SQL 将是一个很大的麻烦。

我更愿意在 Rails 中解决这个问题,但我也愿意接受其他建议(例如 PostgreSQL 8.3 过程或类似的东西)。重要的是,最后,我可以像使用任何其他关联一样使用 Rails 的便利功能,更重要的是,还可以嵌套它们。

任何想法将不胜感激。

谢谢!


为我自己的问题提供某种答案:

我可能会使用数据库视图来解决这个问题,并根据需要添加适当的关联。对于以上,我可以

  • 使用 finder_sql 中的 SQL 创建视图,
  • 将其命名为“contact_actions_or_requests”,
  • 修改 SELECT 子句以添加 user_id 列,
  • 添加一个app/models/ContactActionsOrRequests.rb,
  • 然后将“has_many :contact_actions_or_requests”添加到 user.rb。

我还不知道我将如何处理更新记录——这似乎是不可能的——但也许这是第一次开始。

0 投票
1 回答
1653 浏览

ruby-on-rails - Rails 有很多通过多态的复选框

这个真的让我失望!:(

我正在尝试为我的用户模型制作一个嵌套模型表单,其中包含一个复选框列表,可以选中或取消选中多个商店以通过模型人员配置管理商店。

出于手头的目的,可以忽略其他人员编制的协会。这是一个类似的模型,我最终想与 Store 一起管理,但第一件事是第一件事,因为我被难住了。

像这样发送我的参数:

然后错误!

我知道我必须将staffable_type 构建为“Store”,但我整天都在尝试——有什么诀窍?

我确实将 staffable_type (和 id)列设置为 :null => false 但这不是造成这种情况的原因,因为无论如何在访问数据库之前都需要在控制器中理顺这一点。

为什么以下在我的创建操作中不起作用:

或者:

如果尝试了许多与上述类似的事情都无济于事。任何帮助将不胜感激。

谢谢你的时间!