选中复选框后如何保存date_time

时间:2018-08-08 14:18:13

标签: ruby-on-rails-5

在我的Person模型中,我有一个名为

的datetime属性。
  

已雇用

我想在用户选中一个复选框时设置其值。

该怎么做? check_box具有2个值:1和0(或true / false),但我需要雇用= Time.now。我应该在Person模型中以某种方式执行此操作吗?我想我应该在模型中创建一个应该称为before_save的方法,即:

def set_hiring_date 

  if self.hired==true
    self.hired=Time.now
  end

end

我的方法还可以吗?

1 个答案:

答案 0 :(得分:0)

好吧-这是我的解决方案。

  1. Person的新的“假”属性hiring_state。
  def hiring_state=(arg)
    @hiring_state=arg
  end
  1. Person中的新方法,在before_save之前执行:
  def set_hiring_date
    if @hiring_state=="1" && !hired?
      self.hired=Time.now
    elsif @hiring_state=="0" && hired?
      self.hired=nil
    end
  end
  1. 我的表单:
  `<%= f.check_box :hiring_state, checked: @person.hired? %>`
  1. 当然还有其他属性:hiring_state已在我的控制器的参数中接受