1

我正在使用设计,我正在尝试更新用户登录的额外字段。所以为了让我能够更新我的 user.longitude,我必须在新的控制器中创建正在执行的具有 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并且它不起作用但我需要能够更新我的用户字段并且我不知道该怎么做,这并没有给我任何错误,但它也没有正确修改它. 感谢您的帮助

4

1 回答 1

0

您的线路:

self.resource.update_attributes(params[:longitude])

如果记录无效并且静默失败,则可能返回 false。先检查一下。

其次,您可能想查看 alias_method_chain 而不是复制继承控制器的 create 操作的内容。

否则,这是在用户登录后更新记录。您应该在他登录后保存经度。无论您在用户登录后将用户重定向到何处,都让以下调用处理经度更新。如果需要生存,简单的方法可能是将经度存储在会话中。

于 2013-02-02T05:21:35.870 回答