【发布时间】:2014-02-22 01:00:46
【问题描述】:
我有一个ActiveRecord 对象,我想在不保存到数据库的情况下对其进行操作。当我尝试使用 setter 操作它时,它变成了一个数组,我不能再调用 ActiveRecord methods 了。有没有办法防止这种情况发生。
这是我的情况:
我有一个模型Server,我想创建一个返回所有Server 记录的方法,将一个名为imported 的attribute 设置为false,然后返回所有@ 的ActiveRecord 列表987654329@ 及其新更新的imported 属性,所有这些都无需更改数据库。
这就是我所拥有的
def servers_imported
servers = Servers.all
servers.each do |server|
server.imported = false
end
servers
end
我的解决方案有效地更改了所有Servers 的imported 属性,而实际上并未将此更改保存到数据库中。但是,返回值 servers 是 array 而不是 ActiveRecord 对象。我需要它是一个ActiveRecord 对象,因为我需要使用其他方法。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord