Rails console hacks :)
Hi there,
I need some help how to handle the rails console commands. I'm really stuck here..
I've recently added a new column (teams) to my Sales and Orders model. Both models containing the user_id from the User model.
The column team already exists in the User model. So I want to do this:
Fill the team names in the Sales and Orders model through the user_id from the User model and pull the team name from there.
Something like (pseudo sql): insert team into Sale.team from User where user_id == Sale.user_id
I hope you get what I mean :)
Hi,
I got it somehow.. Order.all.each do |tname| tname.team = User.where(:id => tname.user_id).pluck(:team).shift end
If I type this into the console the records get filled but not saved. What should I have to add to save the records?
Order.all.each do |tname| tname.team = User.where(:id => tname.user_id).pluck(:team).shift self.update_columns(team: tname.team) end
or Order.all.each do |tname| tname.team = User.where(:id => tname.user_id).pluck(:team).shift self.update_attributes(team: tname.team) end
are both not working.
>> NoMethodError: undefined method `update_attributes' for main:Object
Any ideas?
Hey Sascha, I'd write it like this:
Order.all.each do |tname|
tname.update_attributes(team: User.where(:id => tname.user_id).pluck(:team).shift)
end
The problem is when you use self
it doesn't point to the tname object, causing that issue.