在Desive中,如果我更改了用户的密码,并且在数据库中更新了密码后,网站会立即注销用户.我不想要这种行为——我该怎么做.请帮忙.

推荐答案

我也有同样的问题,下面的代码似乎适合我.

假设密码控制器是为单例路由设置的.另外,假设经过身份验证的模型是一个帐户.有了这些,你就有了以下几点:

def update
  if current_account.update_with_password(params[:account])
    sign_in(current_account, :bypass => true)
    flash[:notice] = 'Password updated.'
    redirect_to account_path
  else
    render :action => :show
  end
end

关键的组成部分是sign_in方法调用,它试图重新登录帐户,但绕过典狱长回调并将帐户存储到会话中.

Ruby-on-rails相关问答推荐

使用RubyZip处理大型压缩文件:65535个文件的限制

Rails 5.1.7:Sprockets::Rails::Helper::AssetNotFound

Trailblazor 操作 -> 集合 :attribute(has_many 通过关联) 与填充器 -> 如何填充 Reform::Form 形式的 slugs 数组?

无法加载此类文件 -- mysql2/mysql2

attr_accessible(*attributes) 和 attr_protected(*attributes) 有什么区别?

如何使用默认的 Rails 记录器记录 Ruby 异常的整个回溯?

在 rails 3 中设置记录器

Rspec:测试实例变量的赋值

在一行中更改多个对象属性

为什么使用 HTTP PUT 和 DELETE 方法而不是 POST?

如何避免 has_many :through 关系中的重复?

DateTime.now 还是 Time.now?

Rails data-disable-with re-enable 按钮

在 Controller 中调用模型方法

为什么 respond_with 被从 rails 4.2 移除到它自己的 gem 中?

在 Rails 中复制模型实例

:javascript haml 标签中的内联Ruby ?

活动管理员:仅自定义新表单

将数组传递到 hidden_​​field ROR

为什么 rails bootstrap 这么慢,我该怎么办?