Comment lancez-vous un & # 8220; faire & # 8221; bloquer dans un modèle Rails tout en listant une: dépendante?
-
08-07-2019 - |
Question
Donc, j'ai un modèle d'utilisateur qui: has_many beaucoup d'autres modèles comme Documents, Vidéos, Posts et similaires. Ma question se pose lorsque j'exécute un "faire". bloquer du modèle utilisateur comme suit:
has_many :posts do
def recent
find(:all, :order => 'created_at desc', :limit => 12)
end
end
Ceci me permet simplement d’appeler quelque chose comme user.posts.recent pour rechercher uniquement les publications associées à l’utilisateur. Avec cela en place, comment puis-je toujours ajouter un: dépendant = > : détruire ou: dépendant = > : delete_all à cette association? Tout ce que j'ai essayé jusqu'ici s'est échappé de moi.
La solution
Il semble que vous devriez utiliser named_scope .
Il n'y a aucune raison pour que vous ayez un blocage contre votre association.
Vous devez transformer cette méthode récente en une portée nommée et vous pouvez ensuite virer de bord: dépendante = > détruire etc. etc.
Bonne chance!
Autres conseils
Cela devrait fonctionner correctement, autant que je sache.
has_many :posts, :dependent => :destroy do
def recent
find(:all, :order => 'created_at desc', :limit => 12)
end
end