问题标签 [polymorphic-associations]

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 投票
1 回答
4400 浏览

ruby-on-rails - nested attributes with polymorphic has_one model

I am using accepts_nested_attributes_for with the has_one polymorphic model in rails 2.3.5 Following are the models and its associations:

This is the view:

This is the partial shared/address_fields.html.haml

And this is the controller: class VendorsController < ApplicationController

The problem is when I fill in all the fileds, the record gets save on both tables as expected.

But when I just the name and city or address1 filed, the validation works, error message shown, but the value I put in the city or address1, is not persisted or not displayed inside the address form fields?

This is the same case with edit action too.

Though the record is saved, the address doesn't show up on the edit form. Only the name of the Client model is shown. Actually, when I look at the log, the address model SQL is not queried even at all.

0 投票
2 回答
244 浏览

ruby-on-rails - 为什么我的模型在错误的时间触发验证?

在我的edit行动中,我employees_controller有这行代码:

Address如果没有,它应该添加一个空白,这样它将显示在我的编辑 erb 文件中。这样,如果没有与该员工关联的地址,他们将在编辑此记录时强制添加一个。

有一个像这样的多态关联:Person <- User <- Employee并且与Person具有多对多关系Address。该声明如下所示:

代码在第 70 行失败employees_controller.rb

注意它的调用方式save?为什么要这样做?

0 投票
2 回答
2148 浏览

ruby-on-rails - 如何使用 collection_select 创建多态模型?

这是我的模型:

我现在想做的是这样的:app/views/sessions/edit.html.erb

但由于多态分配,它不起作用。我该如何解决这个问题?

编辑:错误是:

参数为:

传递给 speakable 的值是发言人/公司的 id。是的,这是我指定collection_select要返回的值,但我怎样才能同时提供两个值 (speakable_idspeakable_type) ?

0 投票
2 回答
519 浏览

ruby-on-rails - Ruby on Rails:如何从一处验证不同的用户类型?

这是我在 Stack Overflow 上的第一篇文章。我正在尝试构建一个系统来验证具有完全不同站点体验的三种类型的用户:客户、雇主和供应商。

我正在考虑使用带有用户名、密码和 user_type(+ AuthLogic 的其他必填字段)的多态“用户”表(使用 AuthLogic)。如果这是一个好方法,我该如何设置,以便在使用标准方式使用 user_type 验证 user_id 后,我可以将用户引导到适合他们的页面?

谢谢。

0 投票
4 回答
263 浏览

ruby-on-rails - 如何检查实例是否有对象可以跳过显示值?

我围绕一个名为 status 的模型创建了一个多态关联。

一些联系人将具有与之关联的状态。许多人不会。

如果我尝试在状态不存在时调用状态,则会出现错误。现在,即使我没有为模型创建状态,它仍然运行 if-end 块中的任何内容。

这是我正在尝试的,但它不起作用:

在控制器中,它定义如下:

顺便说一句,也开放以使代码更具可读性和 DRY。

0 投票
3 回答
2110 浏览

ruby-on-rails - Rails 防止多态 has_many 中的重复:通过关联

是否有一种简单或至少优雅的方法可以通过关联防止多态 has_many 中的重复条目?

我有两个可以标记的模型、故事和链接。我有意识地决定不在这里使用插件。我想真正了解正在发生的一切,而不是依赖于我没有完全掌握的其他人的代码。

要查看我的问题是什么,如果我在控制台中运行以下命令(假设故事和标签对象已经存在于数据库中)

我的 taggings 连接表将添加两个条目,每个条目都有相同的确切数据(tag_id = 1,taggable_id = 1,taggable_type = "Story")。这对我来说似乎不太合适。因此,为了防止这种情况发生,我在我的标记模型中添加了以下内容:

它几乎可以按预期工作,但是如果我尝试将重复标签添加到故事或链接中,则会收到 ActiveRecord::RecordInvalid: Validation failed 异常。似乎当您将关联添加到列表时,它会调用保存!(而不是保存 sans !)方法,如果出现问题而不是仅仅返回 false,则会引发异常。这不是我想要发生的。我想我可以用 try/catch 来围绕任何添加新标签的尝试,但这违背了你不应该期待你的例外的想法,这是我完全期望发生的事情。

当我想要做的只是因为存在重复而默默地不将对象保存到数据库时,是否有更好的方法不会引发异常?

0 投票
1 回答
103 浏览

ruby-on-rails - 将模型与多态关联

我试图将联系人与类相关联,但作为两种不同的类型。Current_classes 和 Interested_classes。

我知道我需要启用多态,但我不确定它需要在哪里启用。

这就是我目前所拥有的

然后在我的联系人模型中,我想要这样的东西。

我究竟做错了什么?

0 投票
1 回答
476 浏览

ruby-on-rails - Rails:多态用户表是 AuthLogic 的好主意吗?

我有一个系统,我需要从主页上的一个登录表单登录三种用户类型:客户、公司和供应商。

我在http://github.com/binarylogic/authlogic_example创建了一个根据 AuthLogic 示例应用程序工作的用户表。我添加了一个名为“用户类型”的字段,该字段当前包含“客户”、“公司”或“供应商”。

注意:每个用户类型都包含许多不同的字段,所以我不确定单表继承是否是最好的方法(如果这个结论无效,欢迎更正)。

这是一种多态关联,其中三种类型中的每一种都用用户记录“标记”?我的模型应该如何显示,以便在我的用户表和我的用户类型客户、公司、供应商之间建立正确的关系?

非常感谢!

- - - 更新 - - -

当前设置:

这是设置它们的有效方法吗?

0 投票
5 回答
1575 浏览

database - 数据库最佳实践

我有一个存储评论的表,评论可以来自另一个用户,也可以来自另一个配置文件,它们是这个应用程序中的独立实体。

我最初的想法是该表将同时具有 user_id 和 profile_id 字段,因此如果用户提交评论,它会给 user_id 留下 profile_id 空白

这是对还是错,有更好的方法吗?

0 投票
1 回答
437 浏览

ruby-on-rails - 如何在一个 RoRacts_as_tree 树视图中组合两个模型?

我有两个简单的模型,每个模型都有acts_as_tree,比如部门和员工。我的目标是创建一个将两个模型组合到一个整体树中的树视图,如下所示:

  • 部门 1
    • 子部门 1.1
      • 员工甲
      • 员工乙
    • 子部门 1.2
  • 部门 2
    • 子部门 2.1
      • 员工 C
  • 部门 3
    • 子部门 3.1
      • 员工 D
      • 员工 E
    • 子部门 3.2

ETC

我已经发现了这一点:作为具有多个模型的树,但恐怕我可以在正确的方向上使用更多的指针。

谢谢!