- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 after_save 回调中使用 update_attributes 更新模型实例时遇到问题。 Update_attributes 返回 true,但未在模型实例中设置属性。
模型对象 Graph 有很多数据点,我想跟踪最大值及其测量时间。由于各种原因,我想对这些信息进行非规范化处理,所以我得到了以下代码:
class Graph
include MongoMapper::Document
many :datapoints, :dependent=>:destroy
key :max_value, Float
key :max_value_at, Time
end
在我的数据点中:
class Datapoint
belongs_to :graph
key :graph_id, ObjectId, :required=>true
key :value, Float
key :time, Time
after_save :update_max_on_save
....
def update_max_on_save
g = self.graph? ? self.graph : Graph.find_by_id(self.graph_id)
if g.max_value.nil? || g.max_value < self.value
g.update_attributes( {:max_value=>self.value, :max_value_at=>self.time} )
end
end
end
谁能解释一下为什么这种更新图表属性的方法会失败?
最佳答案
不确定,但实际上我会将其更改为 before_save
或 validates :max_is_updated
。
您在示例中使用的方法,即使它正在运行,也会导致对象被保存两次:一次是在最初保存时,另一次是在 中的
。update_attributes
期间保存后
关于ruby-on-rails - update_attributes 无法在 after_save 回调中更新对象 (mongomapper+rails3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784603/
obj.update_attribute(:only_one_field, 'Some Value') obj.update_attributes(field1: 'value', field2: '
我正在尝试在某个操作后更新对象的属性。如果我使用 update_attribute,一切都会正确保存到数据库中,但我有很多需要更新的东西,所以它变得非常重复。 这工作正常: order.update_
所以我有一个编辑页面,上面有大量的可编辑字段......简单的更新......@patient.update_attributes(params[:patient]) ……一切都很好,除了…… 在这
我在以多级嵌套形式更新数据时遇到问题。我使用部分来包含创建和更新 View 的所有字段,并且我在创建时没有问题。只有更新。 基本上结构(简化)是: user has_one profile profi
提交表单后,调试功能中会显示正确的自定义参数,但进入控制台时会显示默认参数。 Controller def update current_user.update_attributes(para
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: Rails update_attributes without save? 从根本上说,我想做一个 ActiveRe
我的模型描述了段落和图像,其中每个段落都有_许多图像。对于图像处理,我使用回形针。对于批量分配,我将图像用作段落的nested_attributes。相关代码: 模型/段落.rb class Para
我有一个用户数据库作为User(id:integer,username:string,created_at:datetime,updated_at:datetime,password_digest:s
基本上,警报和更新之间存在一对多关系。许多更新属于一个警报。现在我的问题是我无法更新数据库中的任何记录。我可以毫无问题地创建新记录。 Rails 记录器将实际记录打印到日志中。正如您从日志文件中看到的
如果一个模型在本地更改了一个属性,然后又将其改回,ActiveRecord 不会将更改发送到数据库。这对性能非常有用,但如果其他东西更改了数据库,并且我想将其恢复为原始值,则更改不会生效: model
我对 Rails 很熟悉,但在 JavaScript 和 Ajax 方面却完全迷失了。 我试图做到这一点,以便当用户单击列表中的某个项目时,会在该项目上使用 Ajax 调用 update_attrib
我在使用 update_attribute 时遇到问题。我只想更新我指定的属性,但另一个属性是(在我无权访问的不同位置更改的属性)。 这是一个简化的版本: user = User.find(1) p
为什么会出现此错误?我没主意了。 # 的未定义方法“update_attributes” 代码: exists = Vote.where(comment_id: @comment.id).exists
我想在保存事件之前进行检查,这样我就可以在每次更新特定字段时发出警报。我尝试使用“changed”来检测它,但是 update_attributes 简化了数据库验证,所以我无法使用 changed?
所以我有一个用户模型,包括登录名、电子邮件地址、密码、密码确认、姓名、头像(图片)等。前 5 个有验证,基本上说明所有 5 个都需要存在才能创建一个新模式。 但是,这会给我带来更新方面的问题。 我有一
我遇到了一个奇怪的事情。我有一个模型 GuardianUpdate,它的字段“read”是一个 bool 值。当我在记录上调用 update_attribute(:read, true) 时,rail
我发生了多态关联关系,当我通过它检索记录时,例如: hour = my_model.find( keeper_id ).hours.where( "day = ?", day_index ) 然后尝试
我想知道在 update_attributes 语句之后更新了哪些字段。我正在过滤可更新的参数并从 params[:model] 中删除那些我不想更新的参数.现在,一些新的可更新参数可能与旧参数具有相
def update @album = Album.find(params[:id]) if @album.update_attributes(params[:album]) redi
这似乎是一个愚蠢的问题,但我无法在任何地方找到答案! 有没有可能update_attributes()并跳过验证,如 save(validate: false) ? 我有一个很长的表格,有些冗长tex
我是一名优秀的程序员,十分优秀!