使用Rails,我有一个模型“User”,其动作“Show”路由到users/:name
。通常它工作正常,但是当名称中有句点(。)时,服务器无法再找到记录。例如,http/localhost:3000/Joe%20Jr.
。
我该如何解决这个问题?
routes.rb中:
get 'users/:name', to: "users#show", as: 'user'
get 'users/:id/edit', to: "users#edit", as: "edit_user"
resources :users
users_controller.rb:
def create
#...
redirect_to user_path
end
答案 0 :(得分:3)
尝试您的路线
get 'users/:name', to: 'user#show', as: 'user', constraints: { name: /.*/ }
这让我们遇到了同样的问题。
感谢Avdi Grimm的博文“Rails 3 resource routes with dots; or, how to make a Ruby developer go a little bit insane”。