gejarufu
@gejarufu

Как решить проблему при использовании гема FriendlyId (friendly_id) — неверное сохранение данных с формы?

Решил использовать гем 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.
Кто-нибудь сталкивался с таким? Как можно решить вопрос?
  • Вопрос задан
  • 2677 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы