繁体   English   中英

Ruby on Rails-如何将当前日期时间保存到数据库?

[英]Ruby on Rails - How to save current datetime to database?

用户创建帐户时,必须将当前日期时间发送到数据库。 我有一列,例如“ a_started_at”。

控制器:

def create
.......
   if @user.save
  @current_Time = DateTime.now
  @current_Time = current_time.strftime("%Y/%m/%d %H:%M")
   end
.......
end

对于用户参数,我在“ company_attributes”中发送了它

company_attributes[a_started_at => @current_Time]

您可能想利用ActiveRecord::Timestamp :如果数据库表中有一列created_at ,那么Rails在创建新行时会自动将当前时间保存到该列中。

要在用户注册时手动设置datetime列,您有两个选项,具体取决于您希望started_at datetime字段的明确程度:

1)在模型中有一个回调:

# in models/user.rb
before_validate :set_started_at

private
  def set_started_at
    self.started_at ||= Time.current
  end

2)通过在控制器中创建用户时提供更多属性:

# in your controller:
@user = User.new(user_attributes.merge(started_at: Time.current))
if @user.save 
  # ...

(代表OP张贴)

我只是在create方法中执行了users.company.started_at = DateTime.now ,它起作用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM