Ruby on rails 在Desive custom上使用rails更新用户字段
我正在使用Desive,我正在尝试更新用户登录的额外字段。因此,为了能够更新我的user.longide,我必须在新的控制器中创建一个具有rails控制器会话的控制器。这是我的密码Ruby on rails 在Desive custom上使用rails更新用户字段,ruby-on-rails,ruby,ruby-on-rails-3,devise,Ruby On Rails,Ruby,Ruby On Rails 3,Devise,我正在使用Desive,我正在尝试更新用户登录的额外字段。因此,为了能够更新我的user.longide,我必须在新的控制器中创建一个具有rails控制器会话的控制器。这是我的密码 class MysessionsController < Devise::SessionsController def create self.resource = warden.authenticate!(auth_options) set_flash_message(:notice, :
class MysessionsController < Devise::SessionsController
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
self.resource.longitude = params[:longitude]
self.resource.update_attributes(params[:longitude])
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
我知道它不遵循restfull,也不起作用,但我需要能够更新我的用户字段,我不知道怎么做,这不会给我任何错误,但它也不能正确修改它。感谢您的帮助您的线路:
self.resource.update_attributes(params[:longitude])
如果记录无效且自动失败,则可能返回false。先看看
其次,您可能希望查看alias_method_链,而不是复制继承控制器的create操作的内容
否则,这将在用户登录后更新记录。你应该在他登录后保存经度。无论用户登录后在何处重定向,都让下面的调用处理经度更新。简单的方法是,如果需要保存经度,可以在会话中存储经度。如果经度无效,您的意思是什么?或者,update_属性的返回值为true或false。如果它失败了,那就是假的。您的记录不会被更新,但仍将继续。看看这里:谢谢,我想我发现了我的错误,这是非常有用的谢谢