Как в Ruby on Rails можно использовать URL-адреса vanity, а также перенаправлять на 404s?

#ruby-on-rails #vanity-url

#ruby-on-rails #vanity-url

Вопрос:

В конце моего routes.rb у меня есть подстановочный знак для URL-адресов vanity. Однако я не могу понять, как перенаправить неизвестные имена пользователей на 404. Как вы можете это сделать?

~ в routes.rb ~

 # Vanity URLs
match ':username', :to => "users#show"
  

~ в пользовательском контроллере ~

 @user = User.find_by_username(params[:username])
if @user.nil?
  render :status => 404
else
  ...
end
  

Комментарии:

1. Какая часть этого у вас не работает?

2. Он просто вообще не перенаправлял. Как ответил jdeseno, он все еще отображал шаблон по умолчанию с кодом ответа 404. Вы должны использовать код, предоставленный jdeseno.

Ответ №1:

То, что у вас есть, все равно будет отображать шаблон по умолчанию, но с кодом ответа 404.

Попробуйте это для отображения страницы 404 по умолчанию вместо:

 render :file => "#{Rails.root}/public/404.html", :layout => false, :status => 404