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_initiali
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_
I read here that in Rails 4, this is the correct syntax:
Progress.find_or_initialize_by(chore_id: chore.id, period: period[chore.frequency], account_id: chore.account_id)
If you are using rails 3.2.1 and above, the new name of the method is first_or_initialize
. It is used with conjunction with where
. In your case, since you are calling save, you should use first_or_create
but if you want to manually call save
, just replace the method and call save after
MyModel.where(local_date: vdays_traffic[:local_date], community_id: vdays_traffic[:community_id]).first_or_create do |record|
record.uniquesters = vdays_traffic[:uniques]
end