分配属性时,必须将哈希作为参数传递

时间:2015-05-03 07:49:20

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

我刚从Rails 4.0.0升级到4.1.0。

现在我收到了这个错误:

  

分配属性时,必须将哈希作为参数传递。

这是我的控制器操作的相关部分:

# app/models/users_controller.rb
def create_user
  @user = User.new()
  @user.update_attributes(params[:user])

我该如何解决这个问题?

在SO上发布了类似的问题,我的问题与发布的问题不同,因为那里提供的提示不是解决方案。

1 个答案:

答案 0 :(得分:3)

如果您希望允许params[:user]为空,则可以执行此操作以防止抛出异常:

@user.update_attributes(params[:user]) unless params[:user].blank?

但是,这可能是一种奇怪的行为,因为控制器操作旨在创建User

在Rails中,还有一个方法present?,它是blank?的反转。你可以使用任何一个更易读的人。

@user.update_attributes(params[:user]) if params[:user].present?