Ruby on rails SyntaxError:如何将参数传递给before_操作?
我在下面的第二行(操作之前的第二行Ruby on rails SyntaxError:如何将参数传递给before_操作?,ruby-on-rails,ruby,ruby-on-rails-4,model-view-controller,syntax-error,Ruby On Rails,Ruby,Ruby On Rails 4,Model View Controller,Syntax Error,我在下面的第二行(操作之前的第二行)得到一个语法错误。如何将第一个操作之前的结果的变量(@organization)传递到第二个操作之前的 在我的控制器中,我在执行操作之前调用以下两个命令: before_action :find_organization before_action :rights?(@organization) find_organization @organization = Organization.find_by(id: params[:id]) if @o
)得到一个语法错误。如何将第一个操作之前的结果的变量(@organization
)传递到第二个操作之前的
在我的控制器中,我在执行操作之前调用以下两个命令:
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
操作前的第二个位于我的基本控制器中:
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 do
find_organization
rights?(@organization)
end
或者,如果您认为此方法适用,您也可以从查找组织
致电权限?
。谢谢!如果只想添加:[:show]
,该怎么办?因为如果我把它添加到do中。。。结束
,我再次遇到语法错误。更简单地说,您可以在第一个方法中设置一个实例变量,然后在第二个方法中使用该变量(如果存在)。对于Nick关于仅添加的问题:[:show]
,请在仅操作之前尝试:[:show]do