私はレールコードでこれをいつも見ています:
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
同じコード行を 3 回繰り返さないことは理解していますが、インスタンス変数と before フィルターを非表示にせずにコードをプライベート メソッドにリファクタリングするだけで、読みやすく、同じことを達成するためのより良い方法はありませんか? ?
private
def get_post(post_id)
Post.find(post_id)
end
次に、インスタンス変数をアクションに保持できます
def edit
@post = get_post(params[:id])
end
プライベート メソッドでインスタンス変数を非表示にすることは、概念的に意味がありません。なぜこれがレールで非常に一般的ですか?