我已经在视图和控制器中执行了所有必要步骤,以防止用户编辑不属于它们的表单。但是,如果用户A使用网址直接访问该网站(例如:旅程/ 5 /旅行/新),它仍然允许用户A在旅程5下创建新旅程,即使旅程5属于用户B.
在rails中处理这种情况的最佳方法是什么?我正在使用设计3.4
答案 0 :(得分:1)
在行程控制器中,您可以添加before_filter
方法来检查行程是否属于current_user
before_filter :authorize_journey, only: [:new]
def authorize_journey
@journey = current_user.journeys.where(id: params[:journey_id]).first
if @journey.blank?
flash[:error] = "You cannot access someone else's record."
redirect_to root_path
end
end
希望这有帮助!