Ruby on rails Rails:操作活动记录对象而不保存
我有一个Ruby on rails Rails:操作活动记录对象而不保存,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我有一个ActiveRecord对象,我想在不保存到数据库的情况下对其进行操作。当我尝试使用setter操作它时,它会变成一个数组,我再也不能对它调用ActiveRecord方法了。有没有办法防止这种情况发生 以下是我的情况: 我有一个模型Server,我想创建一个方法,返回所有Server记录,将名为imported的属性设置为false,然后返回所有服务器的ActiveRecord列表及其新更新的imported属性,所有这些都不需要更改数据库 这是我的 def servers_import
ActiveRecord
对象,我想在不保存到数据库的情况下对其进行操作。当我尝试使用setter操作它时,它会变成一个数组,我再也不能对它调用ActiveRecord方法了。有没有办法防止这种情况发生
以下是我的情况:
我有一个模型Server
,我想创建一个方法,返回所有Server
记录,将名为imported
的属性设置为false
,然后返回所有服务器的ActiveRecord
列表及其新更新的imported
属性,所有这些都不需要更改数据库
这是我的
def servers_imported
servers = Servers.all
servers.each do |server|
server.imported = false
end
servers
end
我的解决方案有效地更改了所有服务器的导入的
属性
,而没有实际将此更改保存到数据库中。但是,返回值servers
是一个array
而不是ActiveRecord
对象。我需要它是一个ActiveRecord
对象,因为我需要使用其他方法。当您调用servers=Server时。所有都会得到一个活动记录对象数组。迭代此集合并返回此数组。servers
变量始终是一个集合。如果需要对活动记录对象使用其他方法,则需要再次迭代
def servers_imported
servers = Servers.all
servers.each do |server|
server.imported = false
end
servers
end
my_servers = servers_imported
my_servers.each do |server|
server.my_pretty_method
end