Сбой метода модели Rails - PullRequest
       0

Сбой метода модели Rails

1 голос
/ 18 января 2012

В моей модели есть следующий код:

attr_accessor :display_time_reader
attr_reader :display_time_reader

со следующим методом display_time_reader =:

def display_time_reader=(days_before_start)
   self.date_to_show_ad=self.start_time-days_before_start.to_i.days
end

Я отправляю его со следующими параметрами:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"wb7acGREdNH2aeuYjye51wwaWdMXgTYvAcNxoDR9HAE=", "sale"=>{"start_time(3i)"=>"13", "start_time(2i)"=>"1", "start_time(1i)"=>"2012", "start_time(4i)"=>"23", "start_time(5i)"=>"00", "end_time(3i)"=>"14", "end_time(2i)"=>"1", "end_time(1i)"=>"2012", "end_time(4i)"=>"01", "end_time(5i)"=>"00", "display_time_reader"=>"7"}, "commit"=>"create"}

Однако я получаю следующую ошибку:

У вас есть нулевой объект, когда вы этого не ожидали! Ты можешь иметь ожидается экземпляр Array. Произошла ошибка при оценке ноль .-

Код контроллера:

def new
  user = User.find(current_user.id)
  @sale = user.sales.build
  @locations = user.locations
  1.times { @sale.items.build; @sale.build_location }
end

def create
 @sale = Sale.new(params[:sale])
 @sale.user_id = current_user.id

 logger.debug "Sale object!!!  #{@sale.inspect}"
 respond_to do |format|
   if @sale.save
     format.html { redirect_to @sale, notice: 'Sale was successfully created.' }
     format.json { render json: @sale, status: :created, location: @sale }
   else
     format.html { render action: "new" }
     format.json { render json: @sale.errors, status: :unprocessable_entity }
   end
  end
end

Есть идеи, что может быть причиной этого?

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Похоже, что хеш-запись инициализатора не была установлена ​​до того, как значения пытались вычесть, поэтому возникла нулевая ошибка.Исправлено с помощью обратного вызова before_save, так как это гарантирует, что при каждом сохранении записи будет вычисляться правильное время начала.

0 голосов
/ 18 января 2012

Похоже, self.start_time может быть nil (следовательно, вызов метода - не определен).Можете ли вы гарантировать, что self.start_time не nil?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...