Forum: Rails-ES STI y polymorphic

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Cf2d1cb659678230b4d7aa584ce0eb54?d=identicon&s=25 Tomás Arcos (torpedero69)
on 2008-11-25 12:41
Hola,
tengo una duda que me está llevando de cabeza. Estoy utilizando STI:

              Post
             ----
                 |
      |--------|
      |                   |
microPost    Article

En la tabla Post, tengo el campo 'type' que valdrá 'microPost' o
'Article', dependiendo de que guarde. Mis problemas vienen a la hora de
crear comentarios:

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

He añadido al modelo microPost y Article lo siguiente:

has_many :comments, :as => : commentable, :dependent => :destroy

Mis dudas:

1. Cuando creo un comentario, por ejemplo
@article.comments.create(params[:comment]), el campo 'commentable_type'
se rellena con 'Post' y no con 'Article'. Podría forzar a
@article.comments.build(params[:comment].merge(:commentable_type =>
"Article")) pero ¿Se tiene que hacer así realmente? Me parece una
solución algo extraña.

2. ¿Como podría conocer que usuarios han comentado un artículo?

Muchas gracias a todos.
Cf2d1cb659678230b4d7aa584ce0eb54?d=identicon&s=25 Tomás Arcos (torpedero69)
on 2008-11-25 12:47
> 2. ¿Como podría conocer que usuarios han comentado un artículo?
>

La tabla comments tiene estos campos:

commentable_type
commentable_id
user_id
This topic is locked and can not be replied to.