我需要比較兩個活動的記錄,並獲得已更改列比較兩個記錄,並獲得已更改列的名稱在軌活動記錄
#<Evaluation id: 1, name: "Foo", status: "yes", comments: "can be better", created_at: "2017-05-09 12:00:00", updated_at: "2017-05-09 12:00:00">
#<Evaluation id: 2, name: "Foo", status: "yes", comments: "keep up the good work", created_at: "2017-05-09 12:05:00", updated_at: "2017-05-09 12:05:00">
我需要比較這兩個記錄,並得到的名稱更改的列的名稱。在這種情況下:comments, :created_at, :updated_at
我一直在使用的方法,如eql?
,record1.attributes.except('id') == record2.attributes.except('id')
這些只返回true或false我需要得到的列名,以及嘗試。 這可以通過比較每列來完成,但我正在尋找任何其他選項。
看起來像它的缺失爲Rails'4.2','5.0'一個Gemfile中和'5.1' - 那裏有大約3年沒有任何承諾。 (雖然它應該很容易更新!) –
通過命令將對象更改爲散列:obj.attributes然後安裝gem hashdiff(https://github.com/liufengyun/hashdiff)並將其比較 – puneet18
我可以確認activerecord-diff作品很棒的Rails 5.0.1和紅寶石2.3.1。只需在你的application.rb文件中使用require'active_record/diff' – Augusto