【问题标题】:rails4 change default url xxx.com/new_page to xxx.com/new_page/usernamerails4 将默认 url xxx.com/new_page 更改为 xxx.com/new_page/username
【发布时间】:2018-05-01 10:01:39
【问题描述】:

我用rails4.2.8ruby2.5.0,在注册新用户的时候,我设置新页面跳转到http://127.0.0.1:3000/email_confirm,但是现在我想把url改成http://127.0.0.1:3000/email_confirm/username,也就是我要加@ 987654325@ 到默认网址,我该如何重写代码?非常感谢您的帮助~~

controllers/user_controller.rb 代码如下:

def create
    @user = User.new(user_params)  
    if @user.save
      log_in @user
      flash[:success] = "almost success!"
      redirect_to :email_confirm
    else
      flash.now[:danger] = 'fail to signup!'
      render :new
    end
  end

  def show
    @user = User.find(params[:id])
  end

routes.rb 代码如下:

get 'signup'  => 'users#new'
get 'login'   => 'sessions#new'
get 'profile' => 'users/show'
get 'email_confirm' => 'users#email_confirm'
post 'login'   => 'sessions#create'
delete 'logout'  => 'sessions#destroy'
resources :users

email_confirm.html.erb 中的app/views/users/email_confirm.html.erb

【问题讨论】:

    标签: ruby-on-rails-4


    【解决方案1】:

    在您的routes.rb 中,更改:

    get 'email_confirm' => 'users#email_confirm'
    

    到:

    get 'email_confirm/:username' => 'users#email_confirm', as: 'confirmation'
    

    那么,一旦用户注册成功,redirect_to confirmation_path(@user.username)

    【讨论】:

    • 非常感谢,我的祝福。我只是稍微改变一下:redirect_to confirmation_path(@user.name),然后它就可以作为我的例外。非常感谢。
    • 很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2013-11-22
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多