问题标签 [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.
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 天
ruby-on-rails - 在rails中使用带有formtastic的关联(has_many)模型中的字段
我搜索并尝试了很多,但我无法按照我的意愿完成它..所以这是我的问题。
Movingresources
包含其他字段,例如quantity
. 我们正在研究“bill”的观点。感谢 formtastic 通过编写来简化整个关系
我得到了一个非常好的复选框列表。但到目前为止我还没有发现:我如何使用来自“movingresource”的附加字段,下一个或在每个复选框下我想要的来自该模型的字段?
我看到了不同的方法,主要是手动循环遍历对象数组并创建适当的表单,在 form.inputs 部分中使用 :for 或不使用。但是这些解决方案都不是干净的(例如,适用于编辑视图但不适用于新的,因为所需的对象没有构建或生成并且生成它们会导致混乱)。
我想知道你的解决方案!
ruby-on-rails - 如何从 has_many 获得行数:通过与 :uniq => true 的关系
这是我的模型:
所有的关系都有效,但我有一个额外的要求,我找不到解决方案:
在资产类别中考虑这种关系
调用 Asset.find( :first ).tags 按预期返回一个标签数组,但我需要每个标签包含一个计数属性,指示如果未指定 :uniq => true 则该行将出现多少次。
例如。多个用户可以将相同的标签应用于资产。我想显示标签名称以及应用它的用户数量。
ruby-on-rails - 如何在 Ruby on Rails 中通过关联订购 has_many?
鉴于以下 AR 模型,我想在给定任务句柄时按姓氏字母顺序对用户进行排序:
我想获得一个任务,然后导航到其分配的用户,并按字母顺序对用户列表进行排序。
我一直在想,我应该能够像这样添加:order
子句has_many :users, :through => :assignments
:
但是这不起作用。
last_name
给定任务时如何对用户进行排序?
ruby-on-rails - 正确路由 :has_many :through
我正在尝试在 2 个对象之间建立多对多关联。我已经阅读了几个教程,并且能够正确设置模型。我的问题是我无法设置正确的路线,因此我可以查看完整的关系......就像只显示特定类别的产品(/categories/1/products/)
这就是我生成模型的方式:
这是架构:
这是 3 个模型对象:
非常简单,一切似乎都运行良好,因为我可以通过控制台将产品添加到类别中:
我确定我需要更新 routes.rb 文件,但我真的不知道正确的方法。这是我放在路由文件中的内容:
当我尝试查看类别“/categories/7/products/”中的产品时,它只会列出所有产品!这是否意味着我的路线设置正确,我只需要在产品控制器上编写一个自定义操作(而不是索引)?我在这里做错了什么......我是接近还是远离?!?
谢谢
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 案例的唯一指示更改。
ruby-on-rails - has_many:通过,自引用关联
我在自引用关联方面遇到了麻烦,模型应该给 ma 一个用于 left_chunks 和 right_chunks 方法的模型数组,但我每次都会得到一个空数组
来源
./script/console 的输出
为什么这些块没有绑定在一起?
代码执行后的数据库
有任何想法吗 ?
ruby-on-rails - 访问 has_many 中的值:通过连接表
我通过成员资格联接表获得了属于组成员的用户,并且该联接表的属性之一是“管理员”。我正在尝试在组的成员视图中进行检查,遍历每个成员以查看他们是否是管理员。
在视图中,我尝试了以下操作:
我也在控制器中试过这个:
但没有运气。有什么想法吗?
更新 - 如下所示,将一个方法放入用户模型中:
ruby-on-rails - 如何访问 has_many 上的加入模型:通过关系
我使用 具有典型的多对多关系has_many => :through
,如下所述。
我在这里尝试做的是允许为成员分配角色。每个成员角色都有一个范围,默认情况下设置为“全部”,但如果需要,可以设置为“运动”。如果范围设置为运动,那么我们还捕获了 sport_id,它允许我们将对该角色的评估限制为特定运动(即,只能管理该运动的团队,而不是每个运动的团队)。听起来很简单。
我已经设置update_member_roles
了这样的操作:
上面的工作很好,它很好地设置了适当的 member_roles ......但是当我正在研究 Role 模型而不是 MemberRole 模型时,我有点卡住了如何访问加入模型来设置:范围和:sport_id。
这里的任何指针将不胜感激。
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
。
推荐的方法是什么?
这是建议迁移的片段。