问题标签 [rails-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.
ruby-on-rails - Rails :include 与 :joins
这更像是一个“为什么事情会这样工作”的问题,而不是一个“我不知道该怎么做”的问题......
因此,拉取您知道将要使用的关联记录的福音是使用,:include
因为您将获得一个连接并避免一大堆额外的查询:
但是,当您查看日志时,没有发生连接:
它正在走捷径,因为它一次提取所有评论,但它仍然不是连接(所有文档似乎都这么说)。我可以加入的唯一方法是使用:joins
而不是:include
:
日志显示:
我错过了什么吗?我有一个包含六个关联的应用程序,并且在一个屏幕上显示来自所有关联的数据。似乎最好有一个加入查询而不是 6 个个人。我知道从性能方面来说,进行联接而不是单独查询并不总是更好(实际上,如果您按时间计算,看起来上面的两个单独查询比联接要快),但毕竟文档我一直在阅读我很惊讶地看到:include
没有像宣传的那样工作。
也许 Rails意识到性能问题并且在某些情况下不加入?
ruby-on-rails - 如何跳过 ActiveRecord 回调?
可能重复:
如何避免运行 ActiveRecord 回调?
我有这样的模型
是否有可能以某种方式强制模型add_points_to_user
在保存时跳过调用?可能类似于ActiveRecord#delete
vs ActiveRecord#destroy
?
ruby-on-rails - 如何在 Rails 中将数据库字段设为只读?
我有一个带有某个字段的数据库表,一旦将其插入数据库,就应该无法更新。我如何告诉我的模型它不应该允许更新某个字段?
ruby-on-rails - Rails:从 Ruby on Rails 的模型中访问 current_user
我需要在 Ruby on Rails 应用程序中实现细粒度的访问控制。单个用户的权限保存在数据库表中,我认为最好让各自的资源(即模型的实例)决定是否允许某个用户读取或写入它。每次在控制器中做出这个决定肯定不会很干。
问题是,为了做到这一点,模型需要访问当前用户,才能调用类似. 但是,模型通常无法访问会话数据。 may_read
?(current_user
, attribute_name
)
有很多建议可以在当前线程中保存对当前用户的引用,例如在 这篇博文中。这肯定会解决问题。
相邻的 Google 结果建议我在 User 类中保存对当前用户的引用,我猜这是由应用程序不必同时容纳大量用户的人想到的。;)
长话短说,我觉得我希望从模型中访问当前用户(即会话数据)来自我做错了。
你能告诉我我怎么错了吗?
ruby-on-rails - 危险的 ActiveRecord 行为?
我有一个带有投票方法的Post类,它创建了一个Vote实例
这不起作用
这确实有效
.create调用不应该自动添加 :post 关联吗?
澄清
类 Post < ActiveRecord::Base has_many :votes end
类投票 < ActiveRecord::Base belongs_to :user, :counter_cache => true belongs_to :post end
ruby-on-rails - Rails 应用程序中的计算逻辑应该放在哪里?
我有一个模拟房屋的应用程序。House has_many Rooms、Rooms has_many Lights 和 Small_appliances 等。我还有一个名为 Calculator 的控制器,用于访问应用程序。使用计算器控制器将数据添加到房屋(及其房间)。然后生成一个报告,该报告位于 app/views/calculator/report.html.erb。
我的问题是报告的所有计算和逻辑应该去哪里?目前我已经在视图中,在calculator_helper 中有一些东西。通常这会出现在模型中,对吧?但是计算器没有生成的模型。这个的标准是什么?
这是计算器控制器。
ruby-on-rails - has_and_belongs_to_many 关联的排序
在我的 Rails 应用程序中,我有两个与 has_and_belongs_to_many 相关的模型。这意味着有一个连接表。
想象一下我将用户添加到游戏中的场景。如果我想添加一个用户,我会:
假设我想知道添加这些用户的顺序。我可以做这个:
我的问题是:
如果此列表保证每次都以相同的方式读取,则排序是否?
如果是这样,在游戏中重新排序用户的干净方法是什么?
ruby-on-rails - 无法开始使用 Ruby on Rails
我想知道是否有人可以解决我遇到的一些问题?我创建了一个 Rails 应用程序:
然后我想用一个mysql客户端来创建表。让我们说用户和客户。客户也是用户,因此您具有如下架构:
我需要运行哪些 Rails 脚本命令才能在我的 Rails 应用程序下创建并完全填写模型、视图和控制器?我试过这个:
创建文件但模型为空:
这是怎么回事?另外,我想创建一个管理部分来管理东西。我发现我需要为这些添加路线:
我还需要什么才能让管理部分正常运行?这里还有我正在运行的 ruby/gems 版本:
ruby-on-rails - Ruby ActiveRecord 模型中的级联删除?
我正在关注 rubyonrails.org 上的截屏视频(创建博客)。
我有以下型号:
评论.rb
post.rb
模型之间的关系工作正常,除了一件事 - 当我删除帖子记录时,我希望 RoR 删除所有相关的评论记录。我知道 ActiveRecords 是独立于数据库的,所以没有内置的方法来创建外键、关系、ON DELETE、ON UPDATE 语句。那么,有什么办法可以做到这一点(也许 RoR 本身可以负责删除相关评论?)?
ruby-on-rails - 通俗地说,Ruby on Rails ORM 是什么?请解释
我无法理解 Ruby on Rails 中的 ORM。据我了解,表/列和对象/属性之间存在 1:1 的关系。所以每条记录都是一个对象。还有什么是模型?我知道它映射到一张桌子。
我真正追求的是对上述内容的更深入理解。预先感谢您的帮助
我是一名从 PHP 转向 Ruby on Rails 的 Web 开发人员。