Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 获取正确的当前页面?在Rails管线中渲染匹配时_Ruby On Rails - Fatal编程技术网

Ruby on rails 获取正确的当前页面?在Rails管线中渲染匹配时

Ruby on rails 获取正确的当前页面?在Rails管线中渲染匹配时,ruby-on-rails,Ruby On Rails,使用Rails 3.2。我正在使用current\u page?来确定当前页面,以便将活动的添加到相应的导航链接 当登录失败时,它返回到用户会话#新建,但是当前页面不再识别登录路径,因此不会将类活动添加到链接中 我无法使用redirect\u to,因为我想捕获控制器中的错误 如何获取当前页面?以识别新的用户会话 下面是我的代码: # routes.rb # Following 2 lines ensure that the login url is maintained as "login"

使用Rails 3.2。我正在使用
current\u page?
来确定当前页面,以便将
活动的
添加到相应的导航链接

当登录失败时,它返回到
用户会话#新建
,但是
当前页面
不再识别
登录路径
,因此不会将类
活动
添加到链接中

我无法使用
redirect\u to
,因为我想捕获控制器中的错误

如何获取当前页面?以识别新的
用户会话

下面是我的代码:

# routes.rb
# Following 2 lines ensure that the login url is maintained as "login" even there are errors after submitting the form
match 'login' => 'user_sessions#new', :as => :login, :via => :get
match 'login' => 'user_sessions#create', :as => :login, :via => :post

# user_sessions_controller.rb
class UserSessionsController < ApplicationController  
  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      flash[:success] = "Login successful!"
      redirect_back_or_default profile_account_url
    else
      render 'new'
    end
  end
end

# _sub_nav.html.erb
<ul class="nav nav-tabs">
  <li<%= " class=active" if current_page?(login_path) %>>
    <a href="<%= login_path %>">Login</a>
  </li>
  <li<%= " class=active" if current_page?(signup_path) %>>
    <a href="<%= signup_path %>">Signup</a>
  </li>
</ul>
#routes.rb
#下面两行确保登录url保持为“login”,即使在提交表单后出现错误
匹配'login'=>'user#u sessions#new',:as=>:login,:via=>:get
匹配“登录”=>“用户会话#创建”,:as=>:login,:via=>:post
#用户会话控制器.rb
类UserSessionController



我相信改变

“新建”)%%>

应该有用