Meech
1
I have a text field in the database, lets call it log. If I do
something like this:
x = MyModel.find(1)
x.log << “append some text”
x.save
Nothing is saved.
If I do something like this:
x = MyModel.find(1)
x.log += “append some text”
x.save
It works. Seems like a bug.
Meech
2
On Mar 31, 4:33 pm, Meech [email protected] wrote:
Nothing is saved.
If I do something like this:
x = MyModel.find(1)
x.log += “append some text”
x.save
It works. Seems like a bug.
See http://ar.rubyonrails.org/classes/ActiveRecord/Dirty.html - if you
change things inplace you need to use the foo_will_change! methods
Meech
3
Ah, I see.
Too much work, doesn’t feel like it’s my job to tell what’s changed
or will change.
I’ll just switch to +=
Meech
4
On further testing…
x = MyModel.find(1)
x.log << “append some text”
x.changed
=> []
x.log
=> “old valueappend some text”
The value is clearly changed in the resident copy of the model, yet it
doesn’t recognize it as changed.