我对 Ruby On Rails 还很陌生,现在我正在做一个简单的应用程序。在这个应用程序中,用户可以创建许多项目,我使用设计进行身份验证。当然,我想确保您是所有者,以便删除项目(团队、球员等),我现在的做法是:
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]
在这种情况下,如果我只想为所有对象编写一种方法(与此相关的所有对象都有一个“user_id”字段)