问题标签 [has-many]

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

php - 为什么 CakePHP 会重复我的查询?(这不是通常被问到的“太多查询”问题)

我在我的模型中定义了这些关系:

Lead hasMany Job
Job Job HABTM 员工
Job HABTM Truck

我正在尝试find('all')从我的卡车模型中做一个,并将结果限制为:

  1. 所有卡车,
  2. 与具有特定取货日期的卡车相关的所有工作,
  3. 分配到这些工作的员工,
  4. 以及与该工作相关的潜在客户。

这是我的查找操作:

出于某种原因,Cake 执行查询以查找员工 TWICE。这导致所有员工在每项工作中代表两次。这是 SQL 转储:

  1. /li>
  2. /li>
  3. /li>
  4. /li>
  5. /li>
  6. /li>

请注意,最后两个查询是重复的。我做错了什么我错过了吗?

更新
似乎 Cake 为每辆卡车发送了一个重复的查询。现在我在卡车表中有 15 条记录,对leads和的查询employees每个重复 15 次。

0 投票
4 回答
29867 浏览

ruby-on-rails - Rails RSpec 测试 has_many :through 关系

我是测试和 Rails 的新手,但我正试图让我的 TDD 进程正常运行。

我想知道您是否使用任何范式来测试 has_many :through 关系?(或者我想一般只是 has_many )。

例如,我发现在我的模型规范中,我肯定会编写简单的测试来检查关系的两端是否有相关方法。

IE:

然后在我的类别规范中,我进行反向测试并检查@category.posts

我还缺少什么?谢谢!!

0 投票
2 回答
1426 浏览

ruby-on-rails - 单表继承中的 counter_cache

我想知道 counter_cache 是否可以在单表继承中工作。

对于这些模型:

那么以下计数器会起作用吗?

  1. 他们都工作
  2. 他们都没有工作
  3. questions_count工作
  4. 只有simple_questions_countcomplex_questions_count

哪一个?我猜是第 3 个,但我还想要 4 个。如果不是 4,我如何使 4 起作用?

=== 更新 ===

这是一个例子:

所以现在我想要:

我的问题是,单表继承的基本行为是什么:counter_cache => true,是否可以应用于单表继承?

0 投票
2 回答
892 浏览

ruby-on-rails - 带有has_many问题的Rails 3单表继承

我一直在尝试在 Rails 3 中设置单表继承模型,其中父类也包含 has_many 关系。不幸的是,我无法让它工作。下面以三个类为例:

这是用于设置的迁移:

当我以这种方式设置它并尝试创建一个新的 SportsArticle 时,请执行以下操作:

我总是收到以下错误:

“TypeError:无法将字符串转换为整数”

我不知道如何解决这个问题,并尝试在网上找到解决方案,但无济于事。有 STI 模型经验的人有没有发现任何问题?以下是有关 create 方法的文档的链接,如果它有助于诊断问题: http ://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-create

0 投票
2 回答
5290 浏览

nhibernate - Fluent Nhibernate:意外的行数:0;预期:1

** 目前已解决。请参阅编辑 2 和编辑 3 **

我是 NHibernate 新手 - 一周大,但我虽然使用它可以节省我在新项目上的时间,而不是其他方式。我一直在努力让 Nhibernate 将父子集合保存到 SQL 服务器数据库。

替代文字

我的班级地图:

我正在尝试进行Has Many操作。现在我(来自 SO 和博客中的许多其他帖子)相信这是不可能的,除非我在 OrderItems 中有一个 Orders 类引用

替代文字

我正在通过 Nunit 和 NH Profiler 进行测试,并且正在对订单的插入语句进行分析...

任何帮助将不胜感激如何解决它。

谢谢,

三月

编辑:按照约瑟夫的要求进行更改后,现在可以在 NH 探查器中看到更新语句:

编辑 2:更新语句的解决方案

在 Child Class Map 中,将 ID 行更改为:

编辑 3:改进插入

根据上面的代码,NH 分析器将显示,对于每个被持久化的对象实例,它首先会生成一个 select 语句,根据该语句,它将确定对象实例是新的还是脏的。为了避免它使用拦截器作为

http://www.kkaok.pe.kr/doc/hibernate/reference/html/example-parentchild.html

导航到文章的最底部,您将在其中找到有关如何实现拦截器的信息。持久类将是您需要保存到数据库的实体的基类。拦截器需要注册触发会话

我读过拦截器已被事件取代。无法阅读很多内容,但 Interceptor 对我来说非常有用。

0 投票
1 回答
212 浏览

ruby-on-rails - Rails - has_many 和 HABTM 模型的新手关联问题

我有三个模型:

对于站点和用户,我有一个连接表 (sites_users)。

每个站点都有 n 个用户。每个租户都有 n 个站点。

要获取特定站点的用户列表,很简单:

但是我可以添加到租户的关联以提供该租户下所有站点之间所有用户的列表吗?这样我就可以做到:

0 投票
3 回答
2773 浏览

php - CakePHP 奇怪的 saveAll 问题。返回 true,但在数据库中没有任何内容

我有两个模型,Statement-> hasMany -> LineItem

我将以下数组传递给's 方法$this->saveAll()之一:Statement

$this->saveAll($data) == true,但是当我检查statements数据库中的表时,它是空的。奇怪的一点?auto_incrementid列增加了 1。这也反映在$this->Statement->id与表的当前 auto_increment 匹配的事实上。

上述所有情况也适用于该line_items表,只有 auto_increment 增加了 3。

更新

使用$this->save($data)时,Statement 被正确保存(当然,没有LineItem记录)。那么,saveAll 是怎么回事?

更新

所以,我想问题出在我的控制器或模型的某个地方。一些愚蠢的doh!我确定。这是来自我的控制器和模型的代码(为简洁起见,删除了注释和不相关的代码)。

一、型号:

和控制器:

LineItem 模型非常简洁:

到达某个地方

我在控制器方法中关闭了重定向,并查看了 SQL 转储:

事务正在回滚。

那么为什么statement_id在使用 saveAll 时没有将被添加到事务中的查询中呢?

0 投票
2 回答
662 浏览

ruby-on-rails - 如何按超过 1 个 habtm 关联进行过滤

我是 Rails 的新手,所以如果这是一个愚蠢的问题,请不要杀了我 =P

我有以下型号:

我正在寻找一种优雅的方式(如果可能,无需编写 sql 连接或任何东西)来获取具有特定部门和特定语言的所有配置文件。

我已经用谷歌搜索了,但我能找到的只是如何为 1 个 habtm 做到这一点,但我需要 2 个。

我只有以下内容:

但是我不知道如何在不弄乱连接条件或编写sql的情况下通过language_id添加过滤器,当然,所有在一个查询中......有没有一种干净/优雅的方式来做到这一点?

谢谢!

0 投票
1 回答
577 浏览

ruby-on-rails - (Rails 问题)合并多个多态 has_many 关系

(这不是我正在使用的实际代码,尽管这总结了我想要做的事情)

我的问题是我想知道如何创建一个名为“network”的方法,以便返回的不是数组。像这样,

这样我仍然可以这样做:

预计到达时间:

或者嗯,我认为我的问题真的可以归结为是否有可能创建一个方法来合并 2 个 has_many 关联,这样我仍然可以调用它的 find_by 方法。

0 投票
2 回答
96 浏览

ruby-on-rails - 保存与状态更新有关的评论对象 .build ruby

我有一个状态更新和评论数据库表。

一个用户有很多状态更新,一个状态更新有很多评论。与 facebook 类似,当用户朋友进入用户 feed 页面(显示页面)时,他们应该能够评论用户状态更新。

我在保存用户朋友评论时遇到问题..我的代码在下面..我认为它与评论控制器有关,创建方法,“@comment = @statusupdate.comments.build(params[:comment]) "

非常感谢任何指导!谢谢!