Сохранение даты окончания - PullRequest
1 голос
/ 29 января 2011

У меня есть проблема в моей базе данных, у меня есть таблица с именами членов и есть два поля start_date и end_date..из формы люди могут ввести дату начала, и оттуда я хочу добавить три месяца start_date, чтобы дать end_date

* 1003 например *

@member.end_date = params[:start_date] + 3months 

Может кто-нибудь, пожалуйста, помогите мне с этим .. Кстати, с помощью Rails3 спасибо

Ответы [ 2 ]

3 голосов
/ 29 января 2011

Предполагая, что params[:start_date] является Time или Date объектом, вы в значительной степени правильно поняли его в своем примере.Вам просто нужно использовать 3.months, а не 3months.

@member.end_date = params[:start_date] + 3.months

В качестве отступления, эта логика, вероятно, должна жить в модели (ваш код выглядит так, как будто вы делаете это в контроллере)...

class Member < ActiveRecord::Base

  before_save :set_end_date

  private

    def set_end_date
      self.end_date = self.start_date + 3.months
    end

end
1 голос
/ 29 января 2011

Вам просто не хватает точки в вашем синтаксисе.

@member.end_date = params[:start_date] + 3.months

Вот пример в irb (консоль rails):

$ rails c
Loading development environment (Rails 3.0.3)
> start_date = Time.now
 => 2011-01-29 17:18:58 +0000 
> end_date = start_date + 3.months
 => 2011-04-29 17:18:58 +0100 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...