У меня есть повторяющийся кодовый блок, который инициализирует несколько переменных в куче различных методов контроллера.Есть ли способ для меня сделать этот СУХОЙ с помощью модельного метода, в отличие от повторения одного и того же блока кода в каждом методе контроллера?
По сути, это для социального сайта, и он вытягивает список друзей пользователяи затем создание групп друзей на основе разрешений, которые пользователь имеет, которые хранятся в модели дружбы.Эта повторная инициализация ячеек - это то, что я пытаюсь сделать СУХИМ.
Обычно я бы использовал метод модели, но в этом случае 3 отдельные переменные инициализируются на основе одного обращения к базе данных, и это вызывается достаточно часто, я не хочу делать его излишне неэффективным, нажимаяБаза данных 3 раза.В C я бы просто использовал указатели, переданные в качестве переменных.
Это выглядит примерно так:
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