Я перенаправление на страницу города как: <% = link_to @ city.name, city_path (ID: @city)%>
но это не правильный путь, так как URL в настоящее время: локальный: 3000/город ID = 2
Но мне нужно URL-адрес, как: локальный: 3000/NewYork
тогда я сделал: <% = link_to @ city.name, city_path (@ city.name)%>
then url is: http://localhost:3000/city.newyork
Мое действие - город. Что делать для URL, как:
локального хоста: 3000/CITYNAME
как, например:
локальный: 3000/китай
локальный: 3000/пакистанкак маршрут установлен в рубине на рельсах
ответ
вы можете сделать get '/:city_name' => 'city#city_method', as: 'city'
использовать его как <%= link_to @city.name, city_path(city_name: @city.name) %>
Ну, вам нужно указать param
в маршрутах:
resources :cities, param: :name
Кроме того, Rails использует to_param
метод, определенный на моделях, которые должны вернуть то, что пары вы ищете - вы должны определить, что Сити тоже:
class City < ActiveRecord::Base
# ...
def to_param; name; end
# ...
end
Затем, при создании маршрута вы можете передать объект непосредственно city_path
:
link_to @city.name, city_path(@city)
и последнее, но не в последнюю очередь, настроить контроллер find_by
что name
, а не идентификатор:
@city = City.find_by! name: params[:name]
Или для готового решения попробовать некоторые существующие драгоценные камни, такие как friendly_id
!
В файле гем написать
gem "friendly_id"
После написания камень в Gemfile пачке выполнения установки
Создать миграцию, чтобы добавить столбец слизней в модели
rails g migration AddSlugToCity
add_column :cities, :slug, :string
add_index :cities, :slug, unique: true
в контроллере записи
@city = City.friendly.find(params[:id])
В вашем модуле города используйте дружественный идентификатор
class City < ActiveRecord::Base
extend FriendlyId
friendly_id :title, use: :slugged
end
- 1. маршрутизации в рубине на рельсах
- 2. Перенаправление в рубине на рельсах
- 3. Просмотров в рубине на рельсах
- 4. ParamsWrapper в рубине на рельсах?
- 5. Условное значение в рубине на рельсах?
- 6. Как использовать Ajax в рубине на рельсах?
- 7. Как работает литье в рубине на рельсах?
- 8. Как использовать флажок в рубине на рельсах
- 9. Как использовать Ajax в рубине на рельсах
- 10. Как реализовать хешиды в рубине на рельсах
- 11. Как реализовать badgeville в рубине на рельсах
- 12. Как реализовать AS2 в рубине на рельсах
- 13. Как издевается запрос в рубине на рельсах
- 14. Как скрыть строку в рубине на рельсах
- 15. Как использовать кэш в рубине на рельсах
- 16. Как написать это в рубине на рельсах?
- 17. Как использовать rangelider.js в рубине на рельсах?
- 18. Как загрузить изображение в рубине на рельсах
- 19. Как интернационализировать контент на рубине на рельсах?
- 20. Уничтожьте клиента/заказы в рубине на рельсах
- 21. Как иметь + в названных маршрутах в рубине на рельсах?
- 22. ошибка переналадки в рубине на рельсах
- 23. Как игнорировать маршрут в рельсах?
- 24. Как вызвать пользовательский метод в рубине на рельсах 4?
- 25. Работа в очередях в рубине на рельсах
- 26. Как настроить маршрут в рельсах?
- 27. ошибка в перенаправлении в рубине на рельсах
- 28. Внутренняя ошибка сервера в рубине на рельсах
- 29. Трудный поиск в рубине на рельсах
- 30. Итерация дат в рубине на рельсах
use friendly_id gem –