使用 Rails 3.2。我正在为用户 URL 实现虚 url:
# routes.rb
resources :users
match 'u/:login' => 'users#show', :as => :main_user
# users_controller.rb
class UsersController < ApplicationController
def show
@user = User.where(:login => params[:login]).first
end
end
通常,如果我们使用@user = User.find(params[:id])
,它会返回ActiveRecord::RecordNotFound
,然后重定向到500
or 404
(不确定会重定向到哪一个,但这并不重要)。
但在上述情况下,它只会返回@user = nil
并继续渲染show
动作。如何以与搜索相同的方式对其进行编码id
?