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 项目上,但也会显示所有comments.description 根据每个事件排序

*********************         *********************
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