如何使用new_record ?,变了吗?并坚持吗?本例中的rails中的方法

用户名

试图揭穿新纪录?变了吗?坚持吗?在下面的示例中。

如何,此代码具有以下结果:

 # NOW
 # there is 0 new record after running new_data array
 # there is 0 changed record(s) after running new_data array
 # there is 3 persisted record(s) after running new_data array

尝试得出以下结果:

# WANT
#there is 1 new record(s) after running new_data array
#there is 1 changed record(s) after running new_data array
#there is 2 persisted record(s) after running new_data array

*问题是:*

怎么做?。要记录更改和新记录的数量。

Cars.delete_all

original_data = [
    {:brand => 'Mercedes', :used => false, :year => 2000 },
    {:brand => 'Honda',    :used => true , :year => 2000 },
    {:brand => 'Nissan',   :used => false, :year => 2000 }
]

new_data = [
    # updating year to 2013
    {:brand => 'Mercedes', :used => false, :year => 2013 },
    # new record
    {:brand => 'Tesla', :used => false, :year => 2013  },
    # same data
    {:brand => 'Nissan', :used => false, :year => 2000 }
]


# create new cars
original_data.each do |c|
  Cars.create(c)
end

# updates
persisted =   0
new_records = 0
changed_records = 0
new_data.each do |c|
 car =  Cars.where(:brand => c[:brand]).first_or_create
 persisted   +=1 if car.persisted?
 new_records +=1 if car.new_record?
 changed_records +=1 if car.changed?
end

puts "there is #{new_records} new record(s) after running new_data array"
puts "there is #{changed_records} changed record(s) after running new_data array"
puts "there is #{persisted} persisted record(s) after running new_data array"

*更新*

根据答案的代码:-尝试仅更改1条记录,而不是2条。

# updates
persisted =   0
new_records = 0
changed_records = 0
new_data.each do |c|
 car =  Cars.where(:brand => c[:brand]).first_or_initialize
 car.assign_attributes(c)
 persisted   +=1 if car.persisted?
 new_records +=1 if car.new_record?
 changed_records +=1 if car.changed?
 car.save
end

there is 1 new record(s) after running new_data array
there is 2 changed record(s) after running new_data array
there is 2 persisted record(s) after running new_data array
交换

您可以尝试first_or_initialize沿assign_attributes

new_data.each do |c|
 car =  Cars.where(:brand => c[:brand]).first_or_initialize
 new_records +=1 if car.new_record?
 car.save # first save the initialized AR
 car.assign_attributes(c)
 changed_records +=1 if car.changed?
 car.save
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails new_record?交易内部方法

来自分类Dev

我的创建操作无法访问.new_record?方法

来自分类Dev

Rails茧宝石:未定义的方法“ new_record?” 在Wicked的link_to_remove_association上

来自分类Dev

Rails茧宝石:未定义的方法“ new_record?” 在Wicked的link_to_remove_association上

来自分类Dev

在本例中,使用泛型的asInstanceOf有什么问题吗?

来自分类Dev

如何解释本例中的 BLO

来自分类Dev

如本例所示,如何在颤动中变换矩形?

来自分类Dev

如何使线性布局坚持在Android中的ImageView?

来自分类Dev

如何在r的数据帧内的组中应用/循环函数(在本例中为chull())?

来自分类Dev

如何捕获 Apache Beam 中的内置转换引发的异常(在本例中为 JSON 解析)

来自分类Dev

如何设置某些特定JButton组件的尺寸(在本例中为btnPlus)?

来自分类Dev

如何获得不同组的平均值(即本例中的年份)

来自分类Dev

如何将对象(在本例中为 double)从片段传递到公共类?

来自分类Dev

如何使用Rails中的Active Record进行慢速SQL查询以进行测试

来自分类Dev

如何使用Rails3.2.6的send_data在浏览器中显示图像Active Record?

来自分类Dev

我可以使用rufus-scheduler在rails中调度控制器方法吗?

来自分类Dev

您可以在rails中的current_user中使用肮脏的属性方法吗?

来自分类Dev

我可以使用rufus-scheduler在rails中调度控制器方法吗?

来自分类Dev

如果类中的字段是Record,如何确定使用Rtti

来自分类Dev

如何使用不在接口i = new class()中的方法;

来自分类Dev

如何使充满图像的表格坚持HTML中的屏幕宽度

来自分类Dev

坚持如何从打字稿中的数组计算模式

来自分类Dev

使用react-native中的flex使项目坚持到底

来自分类Dev

坚持使用Java中的ArrayDeque和Threads做作业?

来自分类Dev

在php中,如何根据特定(在本例中为最后一个)路径片段对路径数组进行排序?

来自分类Dev

如何使用Active Record范围合并条件,Rails 4

来自分类Dev

如果我决定不坚持使用它,如何从Ubuntu中删除KDE?

来自分类Dev

在Rails中,对常量使用模型方法而不是Active Record列的缺点是什么?

来自分类Dev

如何在Python中将3维数组(在本例中为滤波器组)与2维图像(单色)进行卷积?

Related 相关文章

  1. 1

    Rails new_record?交易内部方法

  2. 2

    我的创建操作无法访问.new_record?方法

  3. 3

    Rails茧宝石:未定义的方法“ new_record?” 在Wicked的link_to_remove_association上

  4. 4

    Rails茧宝石:未定义的方法“ new_record?” 在Wicked的link_to_remove_association上

  5. 5

    在本例中,使用泛型的asInstanceOf有什么问题吗?

  6. 6

    如何解释本例中的 BLO

  7. 7

    如本例所示,如何在颤动中变换矩形?

  8. 8

    如何使线性布局坚持在Android中的ImageView?

  9. 9

    如何在r的数据帧内的组中应用/循环函数(在本例中为chull())?

  10. 10

    如何捕获 Apache Beam 中的内置转换引发的异常(在本例中为 JSON 解析)

  11. 11

    如何设置某些特定JButton组件的尺寸(在本例中为btnPlus)?

  12. 12

    如何获得不同组的平均值(即本例中的年份)

  13. 13

    如何将对象(在本例中为 double)从片段传递到公共类?

  14. 14

    如何使用Rails中的Active Record进行慢速SQL查询以进行测试

  15. 15

    如何使用Rails3.2.6的send_data在浏览器中显示图像Active Record?

  16. 16

    我可以使用rufus-scheduler在rails中调度控制器方法吗?

  17. 17

    您可以在rails中的current_user中使用肮脏的属性方法吗?

  18. 18

    我可以使用rufus-scheduler在rails中调度控制器方法吗?

  19. 19

    如果类中的字段是Record,如何确定使用Rtti

  20. 20

    如何使用不在接口i = new class()中的方法;

  21. 21

    如何使充满图像的表格坚持HTML中的屏幕宽度

  22. 22

    坚持如何从打字稿中的数组计算模式

  23. 23

    使用react-native中的flex使项目坚持到底

  24. 24

    坚持使用Java中的ArrayDeque和Threads做作业?

  25. 25

    在php中,如何根据特定(在本例中为最后一个)路径片段对路径数组进行排序?

  26. 26

    如何使用Active Record范围合并条件,Rails 4

  27. 27

    如果我决定不坚持使用它,如何从Ubuntu中删除KDE?

  28. 28

    在Rails中,对常量使用模型方法而不是Active Record列的缺点是什么?

  29. 29

    如何在Python中将3维数组(在本例中为滤波器组)与2维图像(单色)进行卷积?

热门标签

归档