登录尝试失败时使用 /session 而不是 /login

发布于 2024-09-24 08:55:58 字数 583 浏览 0 评论 0原文

sessions_controller.rb

  def create
    if user = User.authenticate(params[:login], params[:password])
      session[:user_id] = user.id
      redirect_to posts_path
    else
      render :action => 'new'
    end
  end


routes.rb

  get "sessions/create"
  get "sessions/destroy"
  get "sessions/new"

  resources :posts
  resource  :session
  resources :users

  match '/login',  :to => 'sessions#new',     :as => 'login'
  match '/logout', :to => 'sessions#destroy', :as => 'logout'

是否可以在渲染后保留 /login url :action => “新的” ??? 谢谢。

sessions_controller.rb

  def create
    if user = User.authenticate(params[:login], params[:password])
      session[:user_id] = user.id
      redirect_to posts_path
    else
      render :action => 'new'
    end
  end


routes.rb

  get "sessions/create"
  get "sessions/destroy"
  get "sessions/new"

  resources :posts
  resource  :session
  resources :users

  match '/login',  :to => 'sessions#new',     :as => 'login'
  match '/logout', :to => 'sessions#destroy', :as => 'logout'

Is it possible to keep the /login url after the render :action => "new" ???
thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

貪欢 2024-10-01 08:55:58

redirect_to '/login' 不会像 render 'new' 那样保留帖子信息。

我对这个解决方案并不完全满意,但这就是我所做的:

resource :session, :only => [:create, :new, :destroy], 
         :path_names => { :new => 'login' }

这为您提供了以下路线:

  • session POST /session(.:format) {:action=>"create", :controller=>"会话”}
  • new_session GET /session/login(.:format) {:action=>"new", :controller=>"sessions"}
  • DELETE /session(.:format) {:action=>"销毁" , :controller=>“会话”}

redirect_to '/login' does not keep the post information like render 'new' does.

I'm not completely happy with this solution, but this is what I have done:

resource :session, :only => [:create, :new, :destroy], 
         :path_names => { :new => 'login' }

Which gives you the following routes:

  • session POST /session(.:format) {:action=>"create", :controller=>"sessions"}
  • new_session GET /session/login(.:format) {:action=>"new", :controller=>"sessions"}
  • DELETE /session(.:format) {:action=>"destroy", :controller=>"sessions"}
烟─花易冷 2024-10-01 08:55:58

简单的解决方案是简单地更改 render :action => 'new' 到 redirect_to '/login'。我不太喜欢这个,但它应该可以解决你的问题。

The easy solution would be to simply change render :action => 'new' to redirect_to '/login'. I'm not amazingly fond of this, but it should solve the problem for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文