Я бы написал метод для модели комментариев, который сделает это за вас.Итак, в comments.rb:
def title
self.commentable.title if self.commentable.respond_to?(:title)
end
По вашему мнению, вы можете проверить, есть ли у комментария заголовок и отобразить его, или просто пропустить рендеринг:
<% if @commentable.title %>
<h2><%= @commentable.title %></h2>
<% end %>
Это не совсем такпротокол или интерфейс, но в Ruby вы не можете легко указать, что объекты действуют определенным образом.Вы используете такие вещи, как response_to?чтобы увидеть, если они делают, и если так, то вы действуете.