Tengo un modelo del tipo:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
Y:
class Post < ActiveRecord::Base
has_many :comments, :as => :commentable, :dependent => :destroy
end
class MiniPost < ActiveRecord::Base
has_many :comments, :as => :commentable, :dependent => :destroy
end
Los Posts tienen un campo ‘visible’ que no tienen los ‘MiniPosts’.
Y tengo hecho un partial estándar que me pinta los comentarios, ya sean
los dejados a un Post o a un MiniPost:
<%
locals
parent = c.comentable # post o minipost
%>
<%= c.body %>
Lo que quiero es que si el comentario es del tipo Post y además no es
visible, no se muestre. Pero no puedo hacer:
parent.visible?
Porque si fuera un minipost, darÃa un error porque no existe ‘visible’.
¿Hay alguna forma de comprobar esto?
Pensaba en algo similar a parent.has_key?(:visible), pero esto
lógicamente no funciona.
Muchas gracias.