【问题标题】:Map URL "/users/id" to "/dashboard" in Rails 3?在 Rails 3 中将 URL“/users/id”映射到“/dashboard”?
【发布时间】:2010-11-27 13:45:11
【问题描述】:

如何将 url /users/:id 映射到 /dashboard?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3


    【解决方案1】:

    网址为/dashboardid 参数在哪里?还是与“当前”用户有关?

    如果这些页面是关于不同用户的,一个来自参数,另一个来自会话。那么你实际上需要为这 2 个 URL 设置不同的控制器。

    我会这样做:

    routes.rb

    match "dashboard" => 'users#show', :defaults => { :id => -1 }
    

    UsersController.rb

    def show
      @user = User.find(params[:id] == -1 ? current_user_id : params[:id])
      ...
    

    我让你执行current_user_id:-)

    【讨论】:

    • 关于current_user。当我登录时,我希望 URL 显示 /dashboard 而不是 /users/:id 就像现在显示的那样。
    • @donald:您的意思是登录页面应该从/dashboard 提供,还是用户登录后应该重定向到/dashboard
    • @zetetic 登录后应重定向到 /dashboard。
    • 您能否更好地解释一下它是如何工作的?我应该把@user 放在控制器的所有方法中吗?谢谢。
    【解决方案2】:
    match "users/:id" => "YourDashboardController#dashboard"
    

    【讨论】:

    • @donald:已编辑,需要指定dashboard action所在的控制器。
    【解决方案3】:

    使用这个 匹配 "users/:id" => "YourDashboardController#dashboard"

    【讨论】:

      【解决方案4】:

      你有没有尝试过这样的事情:

      match "/dashboard", :to => "users#show", :as => "dashboard"
      

      登录后重定向到dashboard_path

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多