Как мне отобразить мои полиморфные ассоциации в моем представлении? У меня есть следующая модель.
class Blog < ActiveRecord::Base
belongs_to :users
has_one :category, :as => :categorizable
end
class Category < ActiveRecord::Base
belongs_to :categorizable, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :blogs
has_many :categories, :as => :categorizable
end
Однако моя проблема в том, что я получаю ноль при попытке отобразить категорию.
rails console
=> user = User.first
=> user.blogs
[]
=> user.categories
[]
=> category = user.categories
=> category = Category.new
=> category.name = "Education"
=> category.save!
true
=> user.categories
[#<Category id: 1, name: "Education", categorizable_id: 1, categorizable_type: "User", created_at: "...", updated_at: "...">]
=> user.blogs.create(:title => "...", :body => "...", :category => category)
[#<Blog id: 1, user_id: 1, title: "...", body: "...", created_at: "...", updated_at: "...">]
=> blogs = user.blogs.all
=> blogs.each do |blog|
puts blog.category
end
nil
=> blogs.first.category
[#<Category id: 1, name: "Education", categorizable_id: 1, categorizable_type: "User", created_at: "...", updated_at: "...">]
Я не понимаю, почему blog.category возвращает ноль, когда я использую каждый блок? Как отобразить записи моей полиморфной модели через мои представления?
Обновление:
Как пользователь, я хочу создавать категории и назначать их своим блогам. У каждого блога есть одна категория, к которой я хотел бы получить доступ через модель Категории как категорируемый блог.
Это должно быть действительно хорошо, если это работает как есть, как пытается сказать логика, но в настоящее время это не так. Полиморфные модели должны быть элегантными, но сейчас полиморфные для меня отстойны и непригодны. Я все еще жду, когда кто-нибудь поможет мне найти лучшее решение.