ruby-on-rails - Rails 3 - 设计在登录后重定向到表单

标签 ruby-on-rails ruby-on-rails-3 devise warden

在博客应用程序中,我希望每个用户都可以访问表单来发表评论。

当用户提交评论表单时,如果未登录,他将被重定向到 Devise Sign_in 表单。

before_filter :authenticate_user!, :except => [:index, :show, :new]

用户登录后,如何将他重定向到评论表单并填写所有字段?

提前致谢

最佳答案

如果您希望用户在每次登录后都进入评论表单,请在 ApplicationController 中添加:

#after_sign_in_path_for is called by devise
def after_sign_in_path_for(resource_or_scope)
  comment_path...
end

如果您想让用户返回到登录前所在的页面,您可以在 session 中保存当前的 Controller +操作并重定向回来:

session[:pre_login_controller] = params[:controller]
session[:pre_login_action] = params[:action]

然后:

def after_sign_in_path_for(resource_or_scope)
  if session[:pre_login_controller] && session[:pre_login_action]
    "#{session[:pre_login_controller]}/#{session[:pre_login_action]}"
  else
     some default path -- root url or comment path etc
  end
end

关于ruby-on-rails - Rails 3 - 设计在登录后重定向到表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5704955/

相关文章:

ruby-on-rails-3 - Rails label 和 label_tag 之间的区别

css - Devise 不加载自定义 CSS

ruby-on-rails - 将脚本 src 转换为 Rails 中的快速 '//= require' 语句

ruby-on-rails - 我的 CkEditor 在 Active Admin 中看起来不太好

ruby-on-rails - Rails,字符串长度的 DRY 默认验证器?

ruby-on-rails-3 - 使用delayed_job异步发送带有附件的电子邮件

ruby-on-rails - 未定义的局部变量或方法 `number_to_delimited'

javascript - Rails 3 转义 html 标签在浏览器中作为 JSON 时未转义

ruby-on-rails - 未知属性 `user_id'

ruby-on-rails - Rails - 设计安装(成功/现场工作,但文件不存在)