我正在尝试创建多态关系并展示它们。
这是我的关系
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)
现在,我的目标将显示在与事件相关的事件#index项目上,但也显示所有comments.description根据每个事件sorta跟随
********************* *********************
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