У меня есть две модели, Персонаж и Фон. У персонажа есть фон_, а фон принадлежит персонажу. У меня есть частичная настройка _menu для отображения в моем режиме Персонажа, чтобы пользователи могли просматривать другие модели, связанные с Персонажем, такие как Предметы и Заклинания.
Тем не менее, у персонажа есть отношение has_many с этими другими моделями, и я не могу понять, как правильно связать модель с отношением has_one.
Вот метод добавления новой страницы со страницы просмотра моего персонажа для модели has_many:
<%= link_to 'Items Page', character_items_path(@character) unless @character.items.exists? %>
А вот код из частичного меню, который будет ссылаться на страницу после создания страницы:
<%= link_to 'Items', character_items_path(@character) if @character.items.exists? %>
И код из моего контроллера Backgrounds:
def new
@character = Character.find(params[:character_id])
@background = @character.build_background(params[:background])
end
def create
@character = Character.find(params[:character_id])
@background = @character.create_background(params[:background])
if @background.save
redirect_to character_path(@character), :notice => "Background information successfully created!"
else
render :action => "new"
end
end
Любой совет? По сути, я хочу, чтобы ссылка_ создала новую фоновую страницу на странице показа символов, а затем чтобы этот фон отображался в частичном меню после его создания, чтобы его можно было просматривать и редактировать, когда пользователь нажимает на ссылку.
Я попытался написать код так:
<%= link_to 'Background', character_background_path(@character) if @character.background.exists? %>
Но тогда Rails жалуется, что .exist? это неопределенный метод. Я предполагаю, что .exists не работает для отношения has_one, иначе я использую его некорректно. Спасибо за любой вклад!