使用 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,然后重定向到500or 404(不确定会重定向到哪一个,但这并不重要)。
但在上述情况下,它只会返回@user = nil并继续渲染show动作。如何以与搜索相同的方式对其进行编码id?