标签: 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上发布了类似的问题,我的问题与发布的问题不同,因为那里提供的提示不是解决方案。
答案 0 :(得分:3)
如果您希望允许params[:user]为空,则可以执行此操作以防止抛出异常:
params[:user]
@user.update_attributes(params[:user]) unless params[:user].blank?
但是,这可能是一种奇怪的行为,因为控制器操作旨在创建User。
User
在Rails中,还有一个方法present?,它是blank?的反转。你可以使用任何一个更易读的人。
present?
blank?
@user.update_attributes(params[:user]) if params[:user].present?