如何在rails 4中使用update_attributes?

时间:2013-11-26 10:24:51

标签: ruby-on-rails ruby-on-rails-4 upgrade

目前我正在将我的应用程序从rails 3.2升级到rails 4。 得到以下错误。

ArgumentError (argument out of range):

由于以下代码行而发生此错误

@lease.update_attributes(params[:lease])

我尝试通过更新也抛出相同的错误。 是否从rails 4中删除了update_attributes。如何使用它?

代码:

def terms_build_methods
  if @lease.blank?
    @lease = params[:current_lease_id].present? ? Lease.find_by_id(params[:current_lease_id].to_i) : Lease.create(params[:lease])
  else
    @lease.update(lease_params)
  end
  Lease.update_lease_occupancy_type(@lease)
  Lease.update_lease_status(@lease)
end

private

def lease_params
  params.require(:lease).permit!
end

2 个答案:

答案 0 :(得分:8)

只需使用@lease.update(lease_params),并在控制器中添加私有方法

def lease_params
  params.require(:lease).permit!
end

答案 1 :(得分:-2)

在Rails 4中,我们可以期望重命名update_attribute()。新方法名称称为update_column()。有关更多信息,请参阅此提交。

https://github.com/rails/rails/commit/a7f4b0a1231bf3c65db2ad4066da78c3da5ffb01