繁体   English   中英

Ruby on Rails API向实例变量添加属性不起作用?

[英]Ruby on Rails API adding property to instance variable not working?

我在Rails上用ruby编写了一个REST API,将时间表保存到数据库中。 在保存时间表之前,我试图将时间表的time属性设置为当前时间Time.now。 但是,时间始终设置为null。

这是我的创建方法:

    def create
    @timesheet = Timesheet.new
    @timesheet.assign_attributes(@json['timesheet'])
    @timesheet.time = Time.now
    if @timesheet.save
      render json: @timesheet
    else
       render nothing: true, status: :bad_request
    end
  end

我正在通过终端进行测试,而且我总是随着时间返回json:null。 谢谢你的帮助。

编辑:模式

create_table "timesheets", force: :cascade do |t|
  t.integer  "employer_id"
  t.integer  "employee_id"
  t.datetime "time"
  t.boolean  "in"
end

Rails已经内置了对时间戳的支持。 如果已经存在,为什么还要复制它呢? 默认情况下,当您生成模型时,创建的迁移将同时具有created_atupdated_at列。

要将时间戳添加到现有表中,请执行以下操作:

rails g migration add_timestamps_to_something created_at:datetime updated_at:datetime
rake db:migrate

用您要更改的表的名称替换something 只要模型具有这些列,在创建记录时,rails就会设置created_at ,而在记录更新时(duh),它们会设置updated_at

暂无
暂无

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

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