Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Desive custom上使用rails更新用户字段_Ruby On Rails_Ruby_Ruby On Rails 3_Devise - Fatal编程技术网

Ruby on rails 在Desive custom上使用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, :

我正在使用Desive,我正在尝试更新用户登录的额外字段。因此,为了能够更新我的user.longide,我必须在新的控制器中创建一个具有rails控制器会话的控制器。这是我的密码

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。如果它失败了,那就是假的。您的记录不会被更新,但仍将继续。看看这里:谢谢,我想我发现了我的错误,这是非常有用的谢谢