0

我认为这是不可能的,但我想以防万一。

我有一个路由文件,例如:

root :to => 'info#home'
match '/about' => 'info#about'
match ':user' => 'users#profile'
match '*a', :to => 'application#not_found'

如果我去site.com/nonsense(假设“废话”不是注册用户)我预计会出现错误,但希望将错误视为未知页面而不是未知用户。

也就是说,我的日志文件显示

{"controller"=>"users", "action"=>"profile", "user" => "nonsense"}

但我希望它显示

{"controller"=>"application", "action"=>"not_found", "a"=>"nonsense"}

有任何想法吗?

4

2 回答 2

0

如果您想在路由器中而不是在有条件的控制器中执行此操作,请查看路由约束 - guides.rubyonrails.org/routing.html#advanced-constraints

于 2013-10-16T17:24:26.113 回答
0

这是你想要的吗?

def profile
  user = User.where(id: params[:id]).first

  unless user
    redirect_to not_found_path(a: params[:id])

    # or

    render partial: 'application/not_found'

    # or something along these lines
  end
end
于 2013-10-16T15:31:17.317 回答