ActiveRecord - Associações auto referenciação
-
18-09-2019 - |
Pergunta
Eu sou um total de Ruby / Rails / Noob AR. Eu tenho um tipo muito básico de esquema de banco de dados que eu não consigo descobrir a melhor maneira de representar na Via Rails.
Table Post
String title, author
Text content
Timestamp posted
Post parent
A idéia aqui é que os postos de nível superior terão pai que é NULL. Cada resposta terá um dos pais, de modo que eles formam tópicos naturais.
O título, autor, conteúdo e postou eu não estou tendo problemas com mas o bit pai está me tropeçar. Qualquer ajuda, sugestões ou sugestões seria ótimo!
Solução
Dê uma olhada na act_as_tree
plugin, ele fornece um monte de métodos que gerem as relações para vocês. Railscasts tem um screencast sobre Árvore Navegação Baseada em que vale a pena prestar atenção.
Outras dicas
Seu modelo Post
deve declarar esta perto do topo:
belongs_to :parent, :class_name => 'Post'
Em seguida, usando uma migração, atualize sua tabela posts
para que cada linha pode acompanhar seu pai:
add_column :posts, :parent_id, :integer
Agora, quando você tem um objeto Post
chamado @post
, você pode fazer referência a seu pai com @post.parent
.