阻止Devise用户通过rails

时间:2015-05-26 09:52:11

标签: ruby-on-rails

我已经在视图和控制器中执行了所有必要步骤,以防止用户编辑不属于它们的表单。但是,如果用户A使用网址直接访问该网站(例如:旅程/ 5 /旅行/新),它仍然允许用户A在旅程5下创建新旅程,即使旅程5属于用户B.

在rails中处理这种情况的最佳方法是什么?我正在使用设计3.4

1 个答案:

答案 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

希望这有帮助!