问题标签 [has-many-through]

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 回答
246 浏览

ruby-on-rails - 使用 ActiveRecord 查找 5 个嵌套表的结果

我有一个用户模型(:名称,:密码,:电子邮件),事件模型(:名称,:等)和兴趣模型(:名称)

然后我创建了两个连接表 -> UsersInterests 和 EventsInterests;每个不包含主键,仅分别由 user_id/interest_id 和 event_id/interest_id 组成。

我正在尝试使用 ActiveRecord 查询所有事件的列表,其中 EventsInterests 的 interest.id=UsersInterests 的 interest.id

我正在使用 has_many 和 belongs_to 与嵌套循环插件的关系

我的模型看起来像这样 =>

用户.rb

事件.rb

利息.rb

users_interests.rb

events_interests.rb

如果@user= User.find(1),我将如何查询用户感兴趣的事件?

我想出了这个 => @events.find(:all, :conditions => EventsInterests.interest_id = UsersInterests.interest_id) ??

但我得到了错误

嗯..wtf?任何帮助家伙....我已经在这里待了 4 天

0 投票
3 回答
6614 浏览

ruby-on-rails - 在rails中使用带有formtastic的关联(has_many)模型中的字段

我搜索并尝试了很多,但我无法按照我的意愿完成它..所以这是我的问题。

Movingresources包含其他字段,例如quantity. 我们正在研究“bill”的观点。感谢 formtastic 通过编写来简化整个关系

我得到了一个非常好的复选框列表。但到目前为止我还没有发现:我如何使用来自“movingresource”的附加字段,下一个或在每个复选框下我想要的来自该模型的字段?

我看到了不同的方法,主要是手动循环遍历对象数组并创建适当的表单,在 form.inputs 部分中使用 :for 或不使用。但是这些解决方案都不是干净的(例如,适用于编辑视图但不适用于新的,因为所需的对象没有构建或生成并且生成它们会导致混乱)。

我想知道你的解决方案!

0 投票
1 回答
1221 浏览

ruby-on-rails - 如何从 has_many 获得行数:通过与 :uniq => true 的关系

这是我的模型:

所有的关系都有效,但我有一个额外的要求,我找不到解决方案:

在资产类别中考虑这种关系

调用 Asset.find( :first ).tags 按预期返回一个标签数组,但我需要每个标签包含一个计数属性,指示如果未指定 :uniq => true 则该行将出现多少次。

例如。多个用户可以将相同的标签应用于资产。我想显示标签名称以及应用它的用户数量。

0 投票
8 回答
35616 浏览

ruby-on-rails - 如何在 Ruby on Rails 中通过关联订购 has_many?

鉴于以下 AR 模型,我想在给定任务句柄时按姓氏字母顺序对用户进行排序:

我想获得一个任务,然后导航到其分配的用户,并按字母顺序对用户列表进行排序

我一直在想,我应该能够像这样添加:order子句has_many :users, :through => :assignments

但是这不起作用。

last_name给定任务时如何对用户进行排序?

0 投票
3 回答
4689 浏览

ruby-on-rails - 正确路由 :has_many :through

我正在尝试在 2 个对象之间建立多对多关联。我已经阅读了几个教程,并且能够正确设置模型。我的问题是我无法设置正确的路线,因此我可以查看完整的关系......就像只显示特定类别的产品(/categories/1/products/

这就是我生成模型的方式:

这是架构:

这是 3 个模型对象:

非常简单,一切似乎都运行良好,因为我可以通过控制台将产品添加到类别中:

我确定我需要更新 routes.rb 文件,但我真的不知道正确的方法。这是我放在路由文件中的内容:

当我尝试查看类别“/categories/7/products/”中的产品时,它只会列出所有产品!这是否意味着我的路线设置正确,我只需要在产品控制器上编写一个自定义操作(而不是索引)?我在这里做错了什么......我是接近还是远离?!?

谢谢

0 投票
7 回答
35989 浏览

ruby-on-rails - Accept_nested_attributes_for with has_many => :through Options

我有两个模型,链接和标签,通过第三个链接标签关联。以下代码在我的链接模型中。

协会:

links_controller 操作:

从 new.html.erb 查看代码:

以及相应的部分:

以下代码行,在 Link 控制器的 create 动作中抛出错误:

错误:Tag(#-621698598) expected, got Array(#-609734898)

has_many => :through 案例中是否需要额外的步骤?这些似乎是基本 has_many 案例的唯一指示更改。

0 投票
2 回答
1197 浏览

ruby-on-rails - has_many:通过,自引用关联

我在自引用关联方面遇到了麻烦,模型应该给 ma 一个用于 left_chunks 和 right_chunks 方法的模型数组,但我每次都会得到一个空数组

来源

./script/console 的输出

为什么这些块没有绑定在一起?

代码执行后的数据库

有任何想法吗 ?

0 投票
2 回答
744 浏览

ruby-on-rails - 访问 has_many 中的值:通过连接表

我通过成员资格联接表获得了属于组成员的用户,并且该联接表的属性之一是“管理员”。我正在尝试在组的成员视图中进行检查,遍历每个成员以查看他们是否是管理员。

在视图中,我尝试了以下操作:

我也在控制器中试过这个:

但没有运气。有什么想法吗?

更新 - 如下所示,将一个方法放入用户模型中:

0 投票
2 回答
417 浏览

ruby-on-rails - 如何访问 has_many 上的加入模型:通过关系

我使用 具有典型的多对多关系has_many => :through,如下所述。

我在这里尝试做的是允许为成员分配角色。每个成员角色都有一个范围,默认情况下设置为“全部”,但如果需要,可以设置为“运动”。如果范围设置为运动,那么我们还捕获了 sport_id,它允许我们将对该角色的评估限制为特定运动(即,只能管理该运动的团队,而不是每个运动的团队)。听起来很简单。

我已经设置update_member_roles了这样的操作:

上面的工作很好,它很好地设置了适当的 member_roles ......但是当我正在研究 Role 模型而不是 MemberRole 模型时,我有点卡住了如何访问加入模型来设置:范围和:sport_id。

这里的任何指针将不胜感激。

0 投票
1 回答
464 浏览

mysql - 在 Rails 中消除 HasMany 关系中的连接表

我正在考虑在 Rails 中创建基于角色的访问控制系统的方法。我也看到了这些伟大的项目(除其他外):

我的问题是,真的有必要为所有内容创建一个连接表吗?如果我关系中的一个表只有几个值(比如小于 100),我不能只将连接表与那个小表合并吗?)这就是我的意思......这就是我需要的:

楷模

  • 用户
  • 团体
  • 角色
  • 允许
  • 用户角色/角色用户
  • 组角色
  • 成员资格(组用户)
  • 角色权限

那样的东西...

RoleRequirement的工作方式是创建一个roles表和一个roles_users连接表。这意味着如果我在一个应用程序中有 20 个可能的角色,我有

  • 20行角色表
  • 包含 n 行的 RolesUsers 表。

这意味着每次我想按角色查找用户时,我都必须加入。不过我想知道,既然应用程序中只有几个角色,为什么不直接替换这个迁移:

有了这个...

这会导致重复(例如大量名为“admin”的角色),但是由于空间很便宜,而且我们可以创建一个方法Role.unique来查找所有唯一角色(以摆脱那个 20 行表),为什么人们要创建连接表?

与权限相同:我可能只有 4 个权限开始:create read update delete. 所以我不需要权限表和roles_permissions 表,我可以复制CRUD 权限并在权限表中拥有role_id。与组相同,如果我的表中有多态列,我不需要组角色roles

推荐的方法是什么?

这是建议迁移的片段