РЕДАКТИРОВАТЬ: я переместил математику времени в модель в качестве обратного вызова.Я получаю эту ошибку:
NoMethodError in OutstandingsController#create
undefined method `hours' for nil:NilClass
Есть ли какой-то драгоценный камень, который мне нужно включить, чтобы иметь возможность вычислять время?Я думал, что это было включено в ActiveSupport ..?
class Outstanding < ActiveRecord::Base
belongs_to :user
before_validation(:on => :create) do
self.panic_deadline = Time.now
self.panic_deadline = self.panic_deadline + self.deadline_hours.hours
self.panic_deadline = self.panic_deadline + self.deadline_minutes.minutes
self.active = true
end
end
class OutstandingsController < ApplicationController
def create
@outstanding = Outstanding.new(params[:outstanding])
@user = current_user
@outstanding.user_id=@user.id
respond_to do |format|
if @outstanding.save ...
<%= form_for(@outstanding) do |f| %>
<div class="field">
<%= select_tag :deadline_hours, options_for_select(Array(0..99), 0) %><%= f.label :deadline_hours %>
<%= select_tag :deadline_mins, options_for_select(Array(1..59), 30) %><%= f.label :deadline_mins %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>