Определите, содержит ли строка только числа
-
26-10-2019 - |
Вопрос
я использую friendly_id Для моих маршрутов в приложении моего Rails.
Я хочу убедиться, что страница не может быть посещена числовым идентификатором.
Страница доступна как эта - www.myurl.com/mifriendlyidstub
Страница не должна быть такой доступной - www.myurl.com/12345 (12345 - это идентификатор myfriendlyidstub)
Я не вижу способа сделать это в документах friendly_id.
Поэтому я подумываю о добавлении метода в мой контроллер, чтобы проверить, является ли параметров численным
def edit
if params[:id].is_numeric? #I need to know how to write this method
not_found #not_found redirects to a 404
end
#rest of the edit action
end
Два вопроса -
Как написать метод «is_numeric»?
Это хороший способ делать что -то? Вы можете увидеть какие -либо подводные камни?
Решение
Я бы использовал before_filter
Прежде чем засунуть его в каждом методе.
Вы также можете настроить маршрутизацию Ограничение сегмента.
Другие советы
Похоже, вы просто хотите иметь имена пользователей в качестве постоянной ссылки сразу после корня '/' ...
config/route.rb
...
match '/:id' => 'controller#show'
...
После этого я верю, что если вы правильно настроите его, он должен отображать как имя вместо идентификатора.
Кстати, спасибо за то, что нашли Friendly_id, я собирался искать что -то подобное для своего проекта.
Дайте мне знать, если это поможет.