2012-04-29 6 views
1

私のアプリで2つのRailscasts:http://railscasts.com/episodes/262-trees-with-ancestryhttp://railscasts.com/episodes/154-polymorphic-associationを一緒に転がそうとしています。祖先の問題を伴う多型コメント

マイモデル:

class Location < ActiveRecord::Base 
    has_many :comments, :as => :commentable, :dependent => :destroy 
end 

class Comment < ActiveRecord::Base 
    belongs_to :commentable, :polymorphic => true 
end 

マイコントローラ:正常に出力

<%= render @comments %> 
<%= render "comments/form" %> 

:私の場所で

class LocationsController < ApplicationController 
     def show 
     @location = Location.find(params[:id]) 
     @comments = @location.comments.arrange(:order => :created_at) 

     respond_to do |format| 
      format.html # show.html.erb 
      format.json { render json: @location } 
     end 
     end 
end 

class CommentsController < InheritedResources::Base 

    def index 
    @commentable = find_commentable 
    @comments = @commentable.comments.where(:company_id => session[:company_id]) 
    end 

    def create 
    @commentable = find_commentable 
    @comment = @commentable.comments.build(params[:comment]) 
    @comment.user_id = session[:user_id] 
    @comment.company_id = session[:company_id] 
    if @comment.save 
     flash[:notice] = "Successfully created comment." 
     redirect_to :id => nil 
    else 
     render :action => 'new' 
    end 
    end 

    private 

    def find_commentable 
    params.each do |name, value| 
     if name =~ /(.+)_id$/ 
     return $1.classify.constantize.find(value) 
     end 
    end 
    nil 
    end 

end 

は、私はこのコードを持っている図を示します。私は_comment.html.erb各コメント等をレンダリングするファイルと_form.html.erb新しいコメントのためのフォームを作成するファイルがあります。

私が持っている問題は、試してみるとです。私はundefined method 'arrange'を取得します。

私はいくつかのグーグルを行いましたが、これに対する一般的な解決策は、アレンジの前にsubtreeを追加することでしたが、それはまたスローされ、未定義のエラーです。私は多形性の関連性をここで問題にしていると推測していますが、私はそれをどのように修正するかについては迷っています。

答えて

0

ダムの間違い...私がすでにやったと思った祖先の宝石と必要な移動を追加するのを忘れてしまった。私がチェックした最後の場所は私が最終的に私のエラーを発見したモデルでした。

関連する問題