0

インスタンスに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

この状況を処理するにはどうすればよいでしょうか。

4

1 に答える 1

0

私のフォームでは、次のものがありました。

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

メソッド呼び出しに:as => :nested_forum引数を追加すると、フォームはパラメーターを に保存するようになり、問題が解決しました。form_forparams[:nested_forum]

于 2011-05-04T19:14:23.050 に答える