Я вижу это все время в коде rails:
before filter :get_post, only: [:edit, :update, :destroy]
def edit
# code .......
end
def update
# code .......
end
def destroy
# code .......
end
private
def get_post
@post = Post.find(params[:id])
end
Я понимаю, что он держится от повторения одной и той же строки кода три раза, но нет ли там гораздо более легкого для чтения и лучшего способа выполнить одно и то же, просто рефакторинг кода в частный метод, не скрывая переменную экземпляра и перед фильтром?
private
def get_post(post_id)
Post.find(post_id)
end
Затем вы можете сохранить переменную экземпляра в действии
def edit
@post = get_post(params[:id])
end
Не имеет смысла концептуально скрывать переменные экземпляра в частных методах. Почему это так распространено в рельсах?