ruby-on-rails-4 - rails4 将默认 url xxx.com/new_page 更改为 xxx.com/new_page/username
问题描述
我用rails4.2.8
and ruby2.5.0
,在注册新用户的时候,我设置新页面跳转到http://127.0.0.1:3000/email_confirm
,但是现在我想把url改成http://127.0.0.1:3000/email_confirm/username
,也就是我想添加username
到默认url,我该如何重写代码?非常感谢您的帮助~~
像这样的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
解决方案
在你的routes.rb
,改变:
get 'email_confirm' => 'users#email_confirm'
到:
get 'email_confirm/:username' => 'users#email_confirm', as: 'confirmation'
然后,一旦用户注册成功,redirect_to confirmation_path(@user.username)
推荐阅读
- java - cucumber-jvm 在示例级别/步骤级别没有识别钩子
- excel - 带有所有格式的Delphi(OLE)的Excel复制粘贴?
- javascript - 我需要将 jpages 与排序 javascript 结合起来
- python - “ValueError:索引包含重复条目,无法重塑”Pandas DataReader
- python - Kivy 是否支持 Python 3.7?
- react-native - 如何为 IOS 生成发布版本 ..?
- scala - 如何在 Spark 2 中使用 HBase?
- python - 如何使用 pandas 将 dict(具有多个列表的键)转储到 csv?
- c++ - 如何使用 LLVM 库编写汇编程序
- c# - 是否有可能独立获得精确的点帧率?