问题标签 [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:模型实例方法还是辅助方法?
按照惯例,应该将以下内容定义为我的模型的实例方法还是辅助方法?
或者
非常感谢。
ruby-on-rails - rename_column 是否处理索引?
说,我们有这样的事情:
然后我们做
ActiveRecord 和/或数据库是否也会处理索引的重命名,还是我必须手动删除索引并再次添加它?
ruby-on-rails - Rails update_attributes 没有保存?
update_attributes
有没有不保存记录的替代方法?
所以我可以做类似的事情:
顺便说一句,我知道我可以@car.model = 'Sierra'
,但我想在一行上更新它们。
ruby-on-rails - 在 Rails 中清理迁移的好方法是什么?
所以我已经在这个网络应用程序上工作了一年,我想将架构编译到 ONE 迁移中,这样我的文本编辑器加载速度更快,git 工作目录不会那么混乱。
搜索查找会更快。
我的任何配置/数据库都不会长 4000 像素。
mysql - 带有 MYSQL 后端的 Ruby on Rails 中虚拟属性和实例属性之间的区别
我讨厌问这样一个新手问题,但我确信我做的事情根本上是错误的,而且我很难找到其他同样一无所知的人。
我的 MCMPART 模型的新视图要求用户输入零件的 :length 和 :width 值。从这些值中,我想推导出 :squarefeet (:length * :width/144) 和钣金 :shearsize (:length X :width)。为此,我将模型修改如下:
控制器只是通用脚手架,但这里是创建方法:
为了明确模型的构建,这里是数据库迁移文件:
我相信有人会马上发现我的问题。这正在创建一个虚拟属性,该属性仅在我的 SHOW 视图中显示。但是,我想要的是将 :shearsize 和 :squarefeet 参数添加到我的数据库中。相反,我在我的数据库中得到了两个属性的 nil 值。而且由于它不是我需要的实例属性,它不受我数据库中设置的精度/比例值的约束,因此在小数点后显示多达 8 位数字。
我需要在控制器中做些什么吗?我试图用@mcmpart.shearsize 替换self.shearsize,但这只会导致我的页面失败。
感谢第一个指出我的菜鸟错误的人。
谢谢,
ruby-on-rails - 使用活动记录按月和日查找记录,忽略年份和时间
我有一个模型(条目),有五年的记录(每天一条记录)。我需要一种方法,当2011-12-25 00:00:00
传递一个日期对象(例如:created_at
RoR 3.0.9 / 红宝石 1.9.2p290
ruby-on-rails - Ruby on Rails 3 - 从另一个模型创建一个模型的实例
我有以下问题,但首先我会做一些假设
- 这个例子只是为了简单地解释我的问题
- 表模型不相关
我有两个表(模型)用户和电子邮件
用户
- ID
- 姓名
- 电子邮件
电子邮件
- ID
- 帐户
所以,我的想法是每次创建用户时,我都想创建一个电子邮件实例,其中 Emails.account = Users.email
我尝试使用回调
但它没有用。
还有另一种方法可以实现这一目标吗?
ruby-on-rails - 验证和更新单个属性栏
我的用户模型中有以下内容
在我的一个控制器中,我只想更新和验证头像字段而不更新和验证电子邮件。
我怎样才能做到这一点?
例如(这不起作用)
我也尝试过update_attribute('avatar', params[:user][:avatar])
,但这也会跳过对头像字段的验证。
ruby-on-rails - Rails 控制器模型命名约定问题
我是 Ruby on Rails 的新手,正在尝试设置基于 oracle 的 ROR 应用程序,
数据库表名是booker.live_edi_vendors
我在以下路径中定义了我的控制器:
内容是:
我还为此控制器创建了一个视图,该视图位于../rails-root/app/views/live_edi_vendors
文件夹中。
我index.html.erb
在这个目录中放了一些代码。
现在,我的模型文件是../rails-root/app/model/live_edi_vendors.rb
这个文件中的内容是:
现在,
当我试图<website host>/live_edi_vendors
从浏览器访问路径时,它说
我的routes.rb
文件有以下行来路由请求:
请帮帮我,这些天我一直在为这些命名约定而苦苦挣扎。
我还将我的目录结构放在这里:
谢谢,
ruby-on-rails - ActiveRecord 查询链
这个 ruby/rails 构造总是让我感到困惑:
这必须从左到右执行,以便每个连续的调用都有一个接收器。所以我们从 User 类开始,调用where
它返回一个ActiveRecord::Relation
. 然后limit
在该实例上调用,返回ActiveRecord::Relation
. 然后using
在该实例上调用(恰好选择了一个分片)。ActiveRecord::Relation
我猜,整个事情在对象内部建立了一个 SQL 查询。我的问题是,“是什么触发了查询的实际执行”?它不能在链中的任何特定点执行,因为链中可能存在进一步修改查询的后继者。即使using
返回,查询仍然无法执行,因为它不知道是否有附加方法附加到链上。显然,它确实在构建后执行查询,那么查询实际上是如何调用的呢?
谢谢...我现在看到链中方法的名称具有“语义”。有些人会进一步修改正在构建的查询。最后一个也是唯一的最后一个可能是需要获取数据的类型。