我不认为这是可能的,但我想我会问以防万一。
我有一个路径文件,如:
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"}
有什么想法吗?
答案 0 :(得分: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
答案 1 :(得分:0)
如果你想在路由器中而不是在条件控制器中这样做,请查看路由约束 - guides.rubyonrails.org/routing.html#advanced-constraints