У меня есть модель Forum
, экземпляры которой могут иметь много вложенных форумов:
class Forum < ActiveRecord::Base
has_many :nested_forums,
:class_name => 'Forum',
:foreign_key => 'parent_forum_id',
:dependent => :nullify
belongs_to :parent_forum,
:class_name => 'Forum'
end
Мои маршруты идут так:
# Standard resource routes
GET /forums/:id => 'forums#show'
# ...
GET /forums/:forum_id/nested_forums/new => 'Forums/nested_forums#new'
POST /forums/:forum_id/nested_forums => 'forums/nested_forums#create'
Теперь в контроллере:
class Forums::NestedForumsController < ApplicationController
expose(:forum) # Will find with :forum_id
expose(:nested_forums) { forum.nested_forums }
expose(:nested_forum) # Main issue here
end
В действии :create
код, сгенерированный строкой expose(:nested_forum)
, попытается создать форум с params[:nested_forum]
. Это неловкая ситуация, так как я использую самосоединение, а модель NestedForum
отсутствует, и, кажется, нет способа сообщить об этом decent_exposure
.
Что было бы хорошим способом справиться с этой ситуацией?