find_or_initialize_by doesn't work with 2 columns
ruby, ruby-on-rails
Solution
You could try:
MyModel.find_or_initialize_by_local_dt_and_comunity_id([:local_dt], vdays[:community_id])
appending the columns names by with an `_and_`
Problem
I am trying to insert data in my database using ActiveRecord. When I use `pdays = MyModel.new` for initialization rather then the below `find_or_initialize_by`, the script runs fine. But it ONLY runs once. I need this to run daily to perform updates. When I try running the script the second time with `pdays = MyModel.new`, then no duplicate key constraint is raised. Hence I am trying the below find_or_initialize_by with 2 arguments, but that gives an error: undefined method `find_or_initialize_by' 2 columns together make the unique record: ``` vertica_traffic.each do |vdays| pdays = MyModel.find_or_initialize_by([:local_dt], vdays[:community_id]) pdays[:local_date] = vdays_traffic[:local_d] pdays[:community_id] = vdays_traffic[:community_id] pdays[:uniquesters] = vdays_traffic[:uniques] pdays.save end ```