Так у меня есть 2 различных ссылки:Как мне сделать friendly_id URL-адрес для города и государства, как объединившиеся государства/техасским/Остин
united-states/texas/austin
и:
united-states/colorado/austin-14be76ea-77e2-4f0e-8540-0103ad72cd7a
Я хочу вторую к быть просто:
united-states/colorado/austin
Так как же я получаю friendly_id перестать создавать уникальные слизни, и вместо того, чтобы город пробкового уникален, когда область действия по количеству ry и состояние?
Также, когда в моем контроллере, как я могу найти правильный город, область по стране и штату?
@city = City.friendly.find(params[:id])
Это просто взгляд на слизню и не заботится о том, чтобы город был вложенным ресурсом.
Вот мои настройки:
class City < ActiveRecord::Base
extend FriendlyId
friendly_id :name, :use => :scoped, :scope => [:homeland, :region]
belongs_to :region
belongs_to :homeland
end
class Region < ActiveRecord::Base
extend FriendlyId
friendly_id :name, :use => :scoped, :scope => :homeland
belongs_to :homeland
has_many :cities
end
#Had to use Homeland as Country was in use
class Homeland < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: :slugged
has_many :regions
has_many :cities, through: :regions
end
routes.rb
resources :homelands, :path => '' do
resources :regions, :path => '' do
resources :cities, :path => ''
end
end
Update: Здесь вы идете Михал
Update 2: My фикс для сейчас
Снимите:
resources :homelands, :path => '' do
resources :regions, :path => '' do
resources :cities, :path => ''
end
end
Добавить:
get "local/:id", to: "homelands#show", as: 'homeland'
get "local/:homeland_id/:id", to: "regions#show", as: 'region'
get "local/:homeland_id/:region_id/:id", to: "cities#show", as: 'city'
Для ссылки:
<%= link_to region.name, region_path(region.slug, homeland_id: @homeland.slug) %>
Какую версию FriendlyId вы используете точно? И какая версия Rails? –
friendly_id (5.0.4), рельсы (4.1.4) – Abram