我從移動的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