當我做一個before_validation如下:attr_accessor可變零做before_validation回調
event.rb
attr_accessor :start_date
attr_accessible :start_time #recorded in database as a datetime
before_validation :build_start_time
...
def build_start_time
begin
self.start_time = DateTime.parse(start_date)
rescue
errors.add(:start_date, "invalid date")
return false
end
end
和控制器的樣子:
def create
@event = events.build(params[:event])
if @event.save
# some other method calls
redirect_to @event
else
redirect_to :root
end
end
起始日期是由設置a <%= f.text_field:start_date%>在窗體視圖中調用,當我檢查參數時,它正確地傳遞給模型控制器的'Create'方法,但是我如果build_start_time方法爲零,則不會設置self.start_time。你能解釋爲什麼它是零,解決方案是什麼?我也試過將它稱爲self.start_date,但這沒有什麼區別。
感謝
是啊,就是這樣,謝謝。 – tks