0

ポリモーフィックな関係を作成して表示しようとしています。

ここで私の関係

events
  has_many :comments, :as => :commentable
users
  has_many :comments, :as => :commentable
comments
  belongs_to :comments, :polymorphic => true

コメントには次のモデルがあります

#  commentable_id   :integer
#  commentable_type :string(255)

今、私の目標は、イベントに関連する event#index アイテムに表示されるだけでなく、各イベントに従ってすべてのコメントを表示することです。

*********************         *********************
Event.title                   Event.title
Event.description             Event.description
{Comment.body}                {Comment.body}   
...                           ...                     
**********************        **********************

等々。

ここに私のコントローラー

def index
    @mosttop = Event.all[1..-1]
    @loc = @mosttop.comments
end

ただし、これを行うと、未定義の場所が表示されます。私は何が間違っているのだろうかと思っています。また、私のルートは次のとおりです

resources :events do
  resources :comments do
end

また、現時点では、ビルドを使用してリレーションシップを作成していませんが、リンクevent/1/commentsして作成するときだけです

コントローラーは次のとおりです

  def create
    @comment = @commentable.comments.new(params[:comment])
    ...
   end

  private

    def load_commentable
      resource, id = request.path.split('/')[1,2]
      @commentable = resource.singularize.classify.constantize.find(id)
    end
  end
4

0 に答える 0