我从移动的Rails 2.2.2应用到Rails 3.我有一个用来更新用户的信息,这是在梁2全功能,但在Rails的休息形式3的Rails 3和update_attributes方法
当提交表单时,一个方法调用时造成的用户对象,然后试图做这样的更新:
if @user.update_attributes params[:user] ## line 126
然后控制器抛出此异常:
undefined method `update_attributes' for #<ActiveRecord::Relation:0xacfc178>
in: app/controllers/admin_controller.rb:126:in `save_user'
所以升Rails 3中的ActiveRecord等类似的对象正在返回不同类型的对象?一个不会继承update_attributes?我该如何解决?
这里是有问题的充分的控制器方法:
def save_user
@needs_password_gen = "YES"
@user = B2bUser.where("id = ?",params[:id])
@needsAPICredentials = false
##### Make sure thay gave us an email address
if !params[:user][:email] || !validEmailAddress(params[:user][:email].to_s)
flash[:warning] = "Valid email address is required."
redirect_to :controller => "admin/edit_user/#{@user.id}" and return
end
@user.first.update_attributes params[:user]
端
THANKS
可以粘贴代码从控制器?而不是单线。 – 2013-03-26 12:35:04
'update_attributes'使用单个记录而不是集合,@user是如何定义的? – siekfried 2013-03-26 12:41:02
try @ user.first.update_attributes params [:user] – 2013-03-26 12:47:53