J'ai un bloc de code répété qui initialise quelques variables dans un tas de différentes méthodes de contrôleur. Y a-t-il un moyen pour moi de faire ce DRY avec une méthode modèle plutôt que de répéter le même bloc de code dans chaque méthode de contrôleur? Fondamentalement, c'est pour un site social, et il tire la liste d'amis d'un utilisateur, puis construit des compartiments d'amis en fonction des autorisations dont dispose l'utilisateur et qui sont stockées dans un modèle d'amitié. Cette initialisation répétée des seaux est ce que j'essaie de faire DRY.Ruby on Rails: DRYing un bloc de code répété qui initialise quelques variables
Normalement j'utiliserais une méthode de modèle, mais dans ce cas, 3 variables séparées sont initialisées en fonction d'une extraction de base de données, et ceci est assez souvent appelé, je ne veux pas rendre inutilement inefficace en frappant la base de données. fois. En C, j'utiliserais juste des pointeurs passés en tant que variables.
Il va quelque chose comme ceci:
def example_method
friendships = @user.friendships
view_permission_friends = []
write_permission_friends = []
message_permission_friends = []
for friendship in friendships
if friendship.view_permission then view_permission_friends << friendship.friend_id end
if friendship.write_permission then write_permission_friends << friendship.friend_id end
if friendship.message_permission then message_permission_friends << friendship.friend_id end
end
#Do something with the 3 initialized arrays here
end
Je pense que je n'ai pas été clair dans ma question, que j'ai révisé. J'essaie d'éliminer l'utilisation répétée de ce bloc entier dans chaque méthode de contrôleur, plutôt que d'optimiser le bloc lui-même. Je suis d'accord avec la division du tableau en lignes séparées. Bien que vous ayez raison, si je devais renvoyer un hachage à partir d'une méthode de modélisation, cela me permettrait de simplement coller les tableaux dans le hachage. Est-ce la meilleure façon de faire cela? –