我正在使用设计,我正在尝试更新额外字段,用户登录。所以为了让我能够更新我的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而且它不起作用,但我需要能够更新我的用户字段,我不知道该怎么做,这不会给我任何错误,但它也不会正确修改它。感谢您的帮助
答案 0 :(得分:0)
你的专栏:
self.resource.update_attributes(params[:longitude])
如果记录无效且无提示失败,则可能返回false。先检查一下。
其次,您可能需要查看alias_method_chain,而不是复制继承控制器的create操作的内容。
否则,这是在用户登录后更新记录。您应该在登录后保存经度。无论您何时在登录后重定向用户,请让以下呼叫处理经度更新。如果需要生存,那么简单的方法就是将经度存储在会话中。