Как сделать поддомены с подстановочными символами в рельсах 5 - PullRequest
0 голосов
/ 25 сентября 2019

В Райане Бейтсе railscast на поддоменах он дает следующий способ сопоставления поддоменов

# config/routes.rb
match '', to: 'pro_users#show', contraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }

, но сопоставление без глагола HTTP не рекомендуется в rails 5, поэтому это исключение

You should not use the `match` method in your router without specifying an HTTP method.

Так, как вы делаете это в рельсах 5 и выше?

1 Ответ

1 голос
/ 25 сентября 2019

В rails 5 вы должны указать, какой HTTP-глагол вы хотите использовать.Поэтому, если вы хотите использовать этот маршрут для получения и публикации, вы должны написать

# config/routes.rb
    match '', to: 'pro_users#show', via: [:get,:post], contraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }

Возможно, вы также захотите очистить ограничение с помощью класса ограничений, в этом блоге есть предложения .

Таким образом, вы можете написать сопоставление маршрута как

# config/routes.rb
match '', to: 'pro_users#show', via: [:get,:post], contraints: SubdomainConstraint }

и

class SubdomainConstraint
   def self.matches?(request)
     request.subdomain.present? && request.subdomain != 'www'
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...