0

このアプリでは、イベントが作成されると、システムは 3 日より近いかどうかをチェックします。そうであれば、ブール値を変更します。

正常に動作していましたが、何をしたかわかりませんが、減算操作でエラーが発生します。NoMethodError (nil:NilClass の未定義メソッド `-'):

私は単純な間違いだと確信しています..しかし、それを見つけることができません。どんな助けでも大歓迎です。どうもありがとう!!

event_controller.rb

  def create
    categories = params[:category_ids] or []
    @event = Event.new(params[:event].merge(:user_id => current_user.id, :category_ids => categories))
    check_date

    respond_to do |format|
      if @event.save
        #Mailer to seek appoval
        format.html { redirect_to @event, notice: 'Event was successfully created.' }
        format.json { render json: @event, status: :created, location: @event }
      else
        format.html { render action: "new" }
        format.json { render json: @event.errors, status: :unprocessable_entity }
      end
    end
  end

private 

  # Set the event to 'reminded'
  def check_date
    if close_date
      @event.reminded = true
    end
  end

  # Checks whether an event is happening in less than 72h
  def close_date
    if ((@event.start_date-Time.now)< 259146.01469397545)
      true
    else 
      false
    end
  end

アップデート

イベントを保存しようとすると、明らかに日付フィールドが空です。これは、フィールドを変更して dateTimePicker を実装したためです。

彼らはかつて

.field
    = f.label t :event_start_date
    %br
    = f.datetime_select :start_date
  .field
    = f.label t :event_finish_date
    %br
    = f.datetime_select :finish_date

そして今フィールド

    = f.label t :event_start_date
    %br
    = f.text_field :start_date, :class=>"datetime_box", :size=>"17"
  .field
    = f.label t :event_finish_date
    %br
    = f.text_field :finish_date, :class=>"datetime_box", :size=>"17"

それを解決する方法はありますか?

4

1 に答える 1

0

start_date@eventを設定してはいけません。

また、72.hoursその巨大な定数の代わりに使用することを検討してください(小数点以下の桁数が奇妙です...)

于 2013-01-25T16:55:59.690 に答える