问题标签 [activerecord]

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

ruby-on-rails - Activerecode HABTM primary key problem

I have to tables that have a many to many relationship. I have created the correct table codesecure_project_tst_definition and it works. I can join rows together by calling the codesecure_projects << method on a TstDefinition object. The problem is that for some reason active record wants to use Codesecure_project_id as the id value for the codesecure_project_tst_definition table. What am I doing wrong? How do I fix it so that when I call the codesecure_projects << method it does not try to set the id of the codesecure_project_tst_definition table?

I have posted the migrations below

The relevant parts of the models:

0 投票
1 回答
7194 浏览

ruby-on-rails - 如何找到模型的关系?

我想在给定特定模型时返回与之关联的所有相关模型。例如:

有没有办法做到这一点而不必自己动手?如果做不到这一点,有什么建议最好的方法吗?

0 投票
2 回答
2233 浏览

ruby-on-rails - 使用 ActiveRecord::Serialization.to_xml 构建动态字段

我很好奇人们使用 AR 的 to_xml() 从控制器构建非实体字段的经验(例如,不是您正在序列化的模型的属性,但可能是利用过程中的属性)。

to_xml 似乎为此提供了一些选项。

一种是通过传递对正在操作的对象上的方法的引用:在序列化过程中,调用这些方法并将它们的结果添加到生成的文档中。我想避免这条路径,因为某些生成的数据虽然取决于对象的属性,但可能超出模型本身的范围——例如,构建特定项目“显示”操作的 URL。另外,它需要太多的深谋远虑。我希望能够通过调整控制器中的 to_xml 代码来更改结果文档。我也不想在对象中声明一个方法的麻烦。

在每个对象中覆盖 to_xml 也是如此。

其他两个选项似乎更符合要求:一个是通过在生成这些字段的序列化选项中传递 procs,另一个是通过传递一个在序列化对象属性后将产生的块。这些提供了我正在寻找的那种调用点自定义,此外,它们的声明将范围绑定到控制器,以便它们可以访问与控制器相同的东西,但是这些方法似乎受到严重限制:AFAICT 它们不包含对正在序列化的对象的引用。它们包含对构建器对象的引用,当然我猜你可以在块/过程中解析并找到已经序列化的属性并使用它们,但这是一种长篇大论,或者至少是不安和次优的。

如果我在这里错了,请纠正我,但是如果您必须访问对象本身,那么在序列化一个或多个对象时使用 procs/blocks 有什么意义。

无论如何,请告诉我我错了,因为我似乎必须在这里忽略一些东西。

哦,是的,我知道我可以写出我自己的观点。我正在尝试利用 respond_to 和 to_xml 来实现最少的额外文件/行。(不过,当我无法弄清楚如何使用 AR 的序列化来做到这一点时,我就采用了这种方法。)

**EDIT 3.29.09——我刚刚向 Rails 提交了一个补丁。如果您有兴趣,请提供一些支持:) https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/2373-record-sensitive-procs-for-to_xml

0 投票
2 回答
929 浏览

ruby-on-rails - 如何在包含的模块中删除验证集?

有没有办法删除在 Rails 插件(或包含的模块)中设置的验证?假设我有一些包含模块的模型:

到目前为止,我唯一的想法是做类似的事情:

我认为这会起作用,但它并不是特别漂亮。

0 投票
3 回答
1893 浏览

ruby-on-rails - 如何实现版本化的 ActiveRecord 关联?

我想使用版本化的 ActiveRecord 关联。例如,我想找到另一个对象属于某个过去日期的对象,或者在此之前它属于的对象。是否已经存在一个库子类化 Rails 的 ActiveRecord 以提供版本关系?或者其他一些提供持久版本关系的 Ruby 库?

0 投票
3 回答
993 浏览

ruby-on-rails - 冻结关联对象

有谁知道 Rails 中可以冻结关联对象的任何方法。我遇到的问题是我有一个包含许多订单项的订单模型,这些订单项又属于产品或服务。订单付款后,我需要冻结订购商品的详细信息,以便在更改价格时保留订单总额。

0 投票
2 回答
1312 浏览

ruby-on-rails - 限制 has_many 关系中关联数量的最佳实践?

假设我有两个模型——用户和帐户。每个账号最多可以关联n个用户,一个用户只能关联一个账号。

说用户似乎很自然

和帐户

但是,在通过该 has_many 声明限制关联数量时,我不清楚最佳实践。我知道有一个 :limit 参数,但这只会限制返回的关联数量,而不是能够存在的数量。

我怀疑答案是使用类似 :before_add 的东西。但是,这种方法似乎只适用于通过 << 创建的关联。所以它会在你使用时被调用

但如果你用过

我还考虑过在 User 模型中使用 before_save 实现限制可能更实用,但在 User 模型中实现 Account 业务规则似乎有点偏离。

限制关联数量的最佳做法是什么?

编辑:每个帐户的 n 个用户将是存储在个人帐户中的一些业务数据,而不是在代码中随意浮动的直接幻数。

0 投票
1 回答
357 浏览

.net - ActiveRecord 是否处理锁定和更新?

ActiveRecord 似乎不适合记录锁定和数据库更新。如何在断开连接的多用户环境(例如网站和 Web 服务)中同步更新?

0 投票
3 回答
12214 浏览

ruby-on-rails - 覆盖 ActiveRecord 对模型和集合的查找的最干净的方法是什么?

我有覆盖 Ar 的 find 方法的库代码。我还包括所有 Association 类的模块,因此 MyModel.find 和 @parent.my_models.find 都可以工作并应用正确的范围。

我基于 will_paginate 的代码:

我的问题是,我只想覆盖某些模型的查找器。目前我需要扩展所有模型共享的所有关联集合类。我知道我可以通过传递一个模块来扩展每个模型的关联:

但是我的库基本上是 ActiveRecord 插件,所以我想要一个适用于模型和范围集合的可插入查找器扩展的干净约定,而不影响应用程序中的所有模型。

0 投票
13 回答
76012 浏览

ruby-on-rails - 没有数据库的 Rails 模型

我想创建一个带有 ActiveRecord 验证但没有数据库表的 Rails(2.1 和 2.2)模型。最广泛使用的方法是什么?我发现了一些声称提供此功能的插件,但其中许多似乎并未被广泛使用或维护。社区建议我做什么?现在,我倾向于根据这篇博文提出自己的解决方案。