SyntaxError: how to pass a parameter to a before_action?

SyntaxError: how to pass a parameter to a before_action?

我在下面的第二行(第二行 before_action)收到语法错误。如何将第一个 before_action 产生的变量 (@organization) 传递给第二个 before_action


在我的控制器中,我调用以下两个 before 操作:

before_action :find_organization
before_action :rights?(@organization)

find_organization
  @organization = Organization.find_by(id: params[:id])
  if @organization == nil
    render json: { errors: "Organization not found" }, status: :bad_request
  end
end

第二个 before_action 位于我的基本控制器中:

private
def rights?(organization)
  unless rights(organization) == "full"   #Uses a helper method
    render json: {errors: "You do not have the right" }, status: :unauthorized
  end
end

您可以用块指定 before_action,如下所示:

before_action do
  find_organization
  rights?(@organization)
end

或者如果您认为这种方法适用,您可以从 find_organization 调用 rights?