我为我的应用程序编写了一个友好的转发功能,但它在发布请求时失败了。场景如下:
- 用户尝试访问受保护的页面
- 应用程序存储 url 并重定向到登录页面
- 用户登录和应用程序重定向到存储的 url
session_helper.rb
def store_location
session[:return_to] = request.url
end
def redirect_back_or(default)
redirect_to(session[:return_to] || default)
session.delete(:return_to)
end
application_controller.rb
def require_login
unless !signed_in?
store_location
redirect_to signin_path
end
end
session_controller.rb
def create
..
sign_in user
redirect_back_or root_path
..
end
这工作正常,直到你POST
提出请求。
- 用户访问
posts#new
并提交表单 - 应用程序存储 url 并重定向到登录页面
- 用户登录并且应用程序重定向到存储的 url,但失败
AbstractController::ActionNotFound at /forums/7/posts
The action 'index' could not be found for PostsController
unless action_name = method_for_action(action_name)
raise ActionNotFound, "The action '#{action}' could not be found for #{self.class.name}"
end
知道如何解决这个问题吗?