2011-04-30 75 views
0

我有一個Forum模型,其實例可以有很多嵌套論壇:如何使用decent_exposure處理自連接?

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

什麼是處理這種情況的好方法?

回答

0

在我的形式,我有:

form_for nested_forum, :url => { ... } do |f| 
    # ... 
end 

我加入了:as => :nested_forum參數來form_for方法調用和表格現在存儲在params[:nested_forum],解決了我的問題的參數。