Hi,
Is there a way to stop the automatic timestamping. I have a model that
has an updated_on field. Its great that it updates on save however
there is one operation i need to do that I dont want the updated_on
field to be set to the current time. Is there a way to stop this for
this one operation?
Thanks
Iain Adams
YrClass.record_timestamps = false
do the deed
YrClass.record_timestamps = true
RSL
I tried this but get the error
NoMethodError in TopicController#show
undefined method `record_timestamps=' for #<Topic:0xb6b88204>
My code looks like this
@topic = Topic.find params[:id]
@post_pages, @posts = paginate :posts, :conditions=>["topic_id = ?",
@topic.id], :per_page=>6
@topic.viewed_by @m
@topic.increment 'views'
@topic.record_timestamps = false
@topic.save
Notice I said YrClass in my example.
RSL
you can also use @topic.update_without_timestamps
Iain Adams wrote:
fyi, update/create_without_timestamps are private methods and should be used with caution [if at all]. a recent patch on edge removed a private method and when someone wrote a ticket about this, david said:
"The method is indeed a protected method and nodoc’ed to boot. In other
words, an internal, implementational detail. But sounds like people are
dipping into the forbidden cookie jar regardless. [http://dev.rubyonrails.org/ticket/9086]
so I’d stick with the methodology i first mentioned. ymmv
RSL
My bad. I had simply noticed it before when scanning through methods()
and noticed that it did indeed work. This is great to know, thanks.
Russell Norris wrote: