2011-01-29 16 views
1

私のデータベースに問題がありますメンバーと呼ばれるテーブルがあり、start_dateとend_dateという2つのフィールドがあります。フォームの人々は開始日を入力できます。そこからstart_dateを3ヶ月追加します。終了日を保存する

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

に例えばEND_DATEに

を与える誰かがparams[:start_date]Timeかであると仮定すると、途中でRails3を使用してthis..Amで おかげ

答えて

1

あなただけのドットが欠落していますあなたの構文で。

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

ここIRB(レールコンソール)での例です:それは働いた

$ 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 
3

私を助けてくださいすることができますオブジェクトでは、あなたはあなたの事例にぴったりです。 3monthsではなく3.monthsを使用するだけです。さておき、このロジックは、おそらく(あなたがコントローラでこれをやっているようなあなたのコードが見えます)モデルに生きるべきとして

@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 
+0

のthnx @idlefingersは、 – bsanneh

関連する問題