Решил использовать гем FriendlyId за неимением наилучшего варианта сделать Friendly URLs. Использую его в двух моделях (один вложен в другой - inherited_resources). Возникла проблема.
Допустим, создаем две страницы вида:
localhost/catalog1/pages/about
localhost/catalog2/pages/about
Т.е. в каждом каталоге есть страницы с одинаковым названием. Названия страниц создаются вручную и могут быть одинаковыми.
При создании все правильно сохраняется. Если попытаться редактировать эту форму, то при сохранении изменяется совершенно другой каталог с таким же именем страницы.
# :show, :edit method
def show
@catalog = Catalog.friendly.find(params[:catalog_id])
@page = Page.friendly.find(params[:id])
end
def edit
@catalog = Catalog.friendly.find(params[:catalog_id])
@page = Page.friendly.find(params[:id])
end
# :create method
def create
@catalog = Catalog.friendly.find(params[:catalog_id])
@page = @catalog.pages.build(page_params)
# _form.html.slim
= form_for [@company, @page] do |f|
= f.label :name
= f.text_field :name, :id => 'name'
Может, все дело в методах show и edit.
Кто-нибудь сталкивался с таким? Как можно решить вопрос?