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方法错误
只需使用您的路由:
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)
在你的方法.