问题标签 [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 投票
3 回答
5126 浏览

ruby-on-rails - 在 rails has_many 中使用连接模型属性:通过

例如,我有一个模型组和模型用户

它们与 :has_many, :through => groups_users 连接

groups_users 表有一个属性,称为 moderator,指定用户是否是组的主持人

问题:我如何访问给定组的所有版主?

在阅读了 :with_scope 之后,我想到的是

但是,在 rails 2 之后,with_scope 受到保护,并且不允许控制器中的给定代码,那么有什么好的替代方法呢?

0 投票
1 回答
2070 浏览

ruby-on-rails - 如何更新 has_many :通过 Rails 中的连接模型属性?

我有一个模型组和模型用户

它们通过“has_many :through => groups_users”双向连接

groups_users 表有一个属性,称为 moderator,指定用户是否是组的主持人

当我尝试更新加入模块属性时,我出错了

我现在这样做的方式:

代码产生mysql错误:

有没有更好的方法来做到这一点,或者我应该将 id 列添加到 groups_users 加入模型表并在 id 上建立索引?

0 投票
3 回答
41473 浏览

ruby-on-rails - 依赖 => 销毁“has_many through”关联

在使用 :through 选项时,显然依赖 => destroy 会被忽略。

所以我有这个...

...但删除评论不会导致关联的 comment_user 记录被删除。

那么,对于使用 :through 时的级联删除,推荐的方法是什么?

谢谢

0 投票
1 回答
485 浏览

ruby-on-rails - Ruby on Rails 有很多通过数组的问题

我在使用.user_ids

我的通信模型如下所示:

在我为通信控制器创建操作中,我试图手动添加user_ids到通信对象,如下所示:

我无法弄清楚为什么@communication.user_ids数组是空的,即使我像这样进行硬编码 id :

我仍然得到一个空@communication.user_ids数组。

我的方法是否遗漏了什么?有什么技巧可以让它工作吗?

提前致谢!

0 投票
1 回答
598 浏览

ruby-on-rails - 如何在 Ruby on Rails 中保存多个类之间的关联记录

我创建了三个类来表示BooksPeopleBookLoans。虽然我能够通过 BookLoans 显示人与书籍的关联,但我一直在为我的数据库播种。

我现在需要保存一本书的结帐。我打算通过图书控制器执行此操作。具体来说,在 BooksController 中创建一个贷款操作。虽然这在理论上对我来说很有意义,但我在实施适当的语法时遇到了可怕的事情。

我添加了从书的显示视图借书的功能。这个视图现在包含一个表单,它使用账簿控制器的贷款操作来记录贷款。

我已经在我的 Book 模型中添加了我认为合适的方法。在theIV的帮助下,我在控制器中捕获了适当的信息。不幸的是,当我在图书展示视图上按贷款时,没有记录 book_loan 记录。

我错过了什么?

图书模型

BooksController 的贷款方法

带贷款表格的书展视图

图书贷款模式

人物模型

开发日志

0 投票
1 回答
150 浏览

ruby-on-rails - 显示连接表字段

在这里,我想显示来自就业连接表的额外属性 CONFIRMED。我究竟做错了什么?

在我的工作视图中,我想显示每个工作的确认值。我只是似乎无法理解。在我看来,我有:

在这里,我想显示来自就业连接表的额外属性 CONFIRMED。我究竟做错了什么?

谢谢

0 投票
1 回答
8483 浏览

ruby-on-rails - 如何使用 has_many :through 和 Honor :conditions 创建新记录?

假设我有一门课程,学生可以通过会员资格注册(例如课程和学生的 has_and_belongs_to_many 关系)。一些会员资格适用于只是观察课程的学生(不是为了学分等),所以:

以下是最有效的方法:

这是不起作用的:

我原以为可以使用该关联建立新记录,这会产生:

  1. 新的学生记录(“乔学生”)
  2. 新的会员记录(course_id = 37,student_id = (joe),observer = true)

但相反,我得到:

我敢肯定,我对此完全感到困惑,并希望有任何见解!我也尝试在 Membership 模型上使用命名范围来执行此操作,但我似乎无法让 has_many 在关联中使用范围。

非常感谢您提供的任何帮助!

0 投票
2 回答
3460 浏览

ruby-on-rails - 更新连接表字段

在我看来,我正在尝试在用户单击时将已确认的字段从 0 更新为 1。

在我的工作控制器中,我有

我确信这都是错误的,但我似乎在猜测 has_many: through。我将如何更新连接表中的已确认字段?

0 投票
3 回答
403 浏览

ruby-on-rails - 如何定义以两种不同方式相互关联的两个模型之间的 ActiveRecord 关系?

在我的应用程序中,我有 User、Video 和 Vote 类。用户和视频可以通过两种不同的方式相互关联:一对多或多对多。前者是用户提交视频时(一个用户可以提交多个视频)。后者是当用户对视频进行投票时(用户通过投票拥有许多视频,反之亦然)。这是我的代码,它不起作用(我认为 - 我可能在视图中做错了什么)。请帮助我理解构建这些关联的正确方法:

0 投票
2 回答
1530 浏览

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

我想(作为一个例子)has_many为一个人的朋友的所有帖子创建一个关联,比如has_many :remote_posts给我一些类似person > friends > person > posts.

..这就是我将如何去做




现在,

...我得到这个错误..

ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: people.person_id: SELECT "posts".* FROM "posts" INNER JOIN "people" ON "posts".person_id = "people".id WHERE (("people".person_id = 1))

除了外键错误 - 似乎友谊协会根本没有发挥作用。我在想这可能是因为:source => :posts, 因为posts协会会加入它两次。

我可以写一些finder sql(这就是我目前正在工作的),尽管我更愿意这样做。

关于如何让它发挥作用的任何想法?