ruby on rails:如何更改路由地址

cha*_*a90 2 routes custom-routes ruby-on-rails-3.2 ruby-on-rails-4

我是rails的新手,我想知道如果有办法改变路线的名称.我会在一分钟内解释这句话.我有一个名为users_controller控制器,下面是我在控制器中的代码:

def create
  if @user.save
  redirect_to @user
end
Run Code Online (Sandbox Code Playgroud)

我的routes.rb文件如下:

resources :users

get '/users/:id', to: 'users#show'
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个表格并且我正确地填写它然后我将被重定向到localhost:3000/users/id(id = some value)我做的.现在我想要这个URL localhost:3000/registered.那就是当我点击提交按钮时,如果一切正确,我想看到的URL localhost:3000/registered将我带到我的show动作或者就像是localhost:3000/users/id(id = some value).我不希望ID可见.

为此,我试过get 'registered', to: 'users#show'但仍然看到相同的URL localhost:3000/users/id(id = some value).请告诉我怎么做.

这是我的节目动作

def show

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

end
Run Code Online (Sandbox Code Playgroud)

我尝试了另一种方法,将另一个动作放入同一个控制器中.我在users_controller中执行了索引操作并执行了然后我得到了一个No方法错误

Bab*_*bar 5

只需使用您的路由:

match "/registered", :to => "users#show", :as => :user_registered, via: :get
Run Code Online (Sandbox Code Playgroud)

要使用此路径,您将使用

redirect_to user_registered_path(id: user_id) 
Run Code Online (Sandbox Code Playgroud)

在你的方法.