我有从 CSV 更新数据库中数据的方法。
csv_text = File.read("#{Rails.root}/db/seed/books.csv")
csv = CSV.parse(csv_text, :headers => :first_row)
csv.each { |row|
row = row.to_hash.with_indifferent_access.to_hash.symbolize_keys
row.delete_if { |key, value| value.nil? }
book = Book.find_or_initialize_by_name(row[:name])
book.update_attributes!(row)
我如何检查记录是否会被创建或更新或者什么都没有发生?
最佳答案
要检查 book
是否已更改,有 changed?
:
book.changed?
要检查 book
是否是新记录,有 new_record?
:
book.new_record?
关于ruby-on-rails - rails : how to check if find_or_initialize is updating/creating/skipping?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10852313/