The documentation for first_or_create doesn't say that it updates the record if it already exists. It
- creates the record if it doesn't exist.
- Returns the record if it exists already
You would have to update it after you get the record.
ch = Channel.where(:channel_name =>"#{channelName}").first_or_create do |c|
c.ownership = "#{owner}"
c.classification = "#{classif}"
end
ch.update_attribute(:attr, value)