Setting expiration date based on creation date in model?

Hi,

I am handling some records that have expiration date. Records should expire 30 days after its creation.

I could add the logic in the controller but I think that should/could be done in the model.

How can I do that in the model? Why is it better in the model than in the controller?

Thanks.

Hi,

I am handling some records that have expiration date. Records should expire 30 days after its creation.

I could add the logic in the controller but I think that should/could be done in the model.

How can I do that in the model?

def self.expire!    expirable = find :all, :conditions => ["created_at < ?", 30.days.ago]    # do something with expirable end

Why is it better in the model than in the controller?

Because it's none of your controller's business.

Fred

Thank you Fred!

Excuse my ignorance but is the function called automatically? I've seen the ! ending in some functions, I wonder what is the meaning of it.

I have a couple of books on RoR, I think I need new ones already covering more stuff right now :wink:

Thanks!

Thank you Fred!

Excuse my ignorance but is the function called automatically?

Nope

I've seen the ! ending in some functions, I wonder what is the meaning of it.

Whatever meaning it has is usually a convention (eg on String methods
with a ! modify inplace, the ones without return a copy with that
modification (eg gsub and gsub!). As far as ruby itself is concerned it makes no difference Fred

...is the function called automatically?

Nope

Sorry again, so from where and by who should that function be called? A cron job for example?

Thanks once again.

...is the function called automatically?

Nope

Sorry again, so from where and by who should that function be
called? A cron job for example?

For example. I didn't say anything about that because I haven't the
faintest clue when you want it called.

Fred

expirable = find :all, :conditions => ["created_at < ?", 30.days.ago]    # do something with expirable

     This u can write as a rake task and can be called it from cron

Sijo

Thanks guys. Looks clear now.

Cheers.