更新 Rails 中的时间属性,超级简单,我很密集
Update time attribute in Rails, SUPER easy, i'm being dense
我有以下 RentalRequest
对象:
#<RentalRequest id: 3, pickup_start: "2015-03-16 21:00:00", pickup_end: "2015-03-16 23:00:00">
我想将 pickup_start
和 pickup_end
更新为 2015-03-17。当我 运行:
RentalRequest.find(3).update_attribute(pickup_end: "2015-03-17 23:00:00")
ArgumentError: wrong number of arguments (1 for 2)
不确定我还需要提供什么其他论据。
如果有帮助,这里是属性本身的类型和输出
RentalRequest.find(3).pickup_end
=> Mon, 16 Mar 2015 23:00:00 UTC +00:00
RentalRequest.find(3).pickup_end.class
=> ActiveSupport::TimeWithZone
看看 at the docs for update_attribute
,看看它如何期望 name, value
作为参数?
您传递的 name: value
是一个散列,一个散列的单个参数。这就是为什么您会收到有关参数数量错误的错误,该方法需要 2 个,但您只提供了 1 个。
您可以更改您的代码以调用:update_attribute( :pickup_end, "2015-03-etc..")
或者您可以改用 update_attributes
方法,该方法采用散列。我推荐后者,因为这样您就可以在同一个 SQL 语句和同一个数据库事务中同时更新两个属性:
update_attributes pickup_end: "2015...etc", pickup_start: "2015...etc"
我有以下 RentalRequest
对象:
#<RentalRequest id: 3, pickup_start: "2015-03-16 21:00:00", pickup_end: "2015-03-16 23:00:00">
我想将 pickup_start
和 pickup_end
更新为 2015-03-17。当我 运行:
RentalRequest.find(3).update_attribute(pickup_end: "2015-03-17 23:00:00")
ArgumentError: wrong number of arguments (1 for 2)
不确定我还需要提供什么其他论据。
如果有帮助,这里是属性本身的类型和输出
RentalRequest.find(3).pickup_end
=> Mon, 16 Mar 2015 23:00:00 UTC +00:00
RentalRequest.find(3).pickup_end.class
=> ActiveSupport::TimeWithZone
看看 at the docs for update_attribute
,看看它如何期望 name, value
作为参数?
您传递的 name: value
是一个散列,一个散列的单个参数。这就是为什么您会收到有关参数数量错误的错误,该方法需要 2 个,但您只提供了 1 个。
您可以更改您的代码以调用:update_attribute( :pickup_end, "2015-03-etc..")
或者您可以改用 update_attributes
方法,该方法采用散列。我推荐后者,因为这样您就可以在同一个 SQL 语句和同一个数据库事务中同时更新两个属性:
update_attributes pickup_end: "2015...etc", pickup_start: "2015...etc"