私はRubyOnRailsにかなり慣れていないので、今は簡単なアプリを使っています。このアプリでは、ユーザーは多くのアイテムを作成でき、認証にはdeviseを使用します。もちろん、アイテム(チーム、プレーヤーなど)を削除するには、あなたが所有者であることを確認したいと思います。現在の方法は次のとおりです。
def destroy
@team = Team.find(params[:id])
if current_user.id == @team.user_id
@team.destroy
redirect_to(teams_url, :notice => 'The team was deleted.')
else
redirect_to root_path
end
end
これが最善の方法ですか?モデルにメソッドを入れることを考えていましたが、そこからcurrent_userにアクセスできるかどうかわかりません。私はbefore_filerについても考えていました。
before_filter :check_ownership, :only => [:destroy, :update]
その場合、すべてのオブジェクトに対して1つのメソッドのみをコーディングする場合(これに関連するすべてのオブジェクトには「user_id」フィールドがあります)