Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 干我:Rails代码_Ruby On Rails_Ruby On Rails 3_Dry - Fatal编程技术网

Ruby on rails 干我:Rails代码

Ruby on rails 干我:Rails代码,ruby-on-rails,ruby-on-rails-3,dry,Ruby On Rails,Ruby On Rails 3,Dry,我怎样才能擦干这个 def correct_user @company = RealEstateCompany.find(params[:id]) if(current_user != @company.user) redirect_to(root_path) end end def correct_user @company = ConstructionCompany.find(params[:id]) if(current_user != @

我怎样才能擦干这个

def correct_user
  @company = RealEstateCompany.find(params[:id])     
  if(current_user != @company.user)
    redirect_to(root_path)
  end
end  

def correct_user
 @company = ConstructionCompany.find(params[:id])     
 if(current_user != @company.user)
   redirect_to(root_path)
 end
end
答案如下,在模块中如下所示:

def correct_user_for_controller?(controller_name)
  @company = controller_name.classify.constantize.find(params[:id])     
  redirect_to(root_path) unless (current_user == @company.user)
end     
然后在任何控制器中包括模型和使用

correct_user_for_controller?("ConstructionCompany") 

correct_user_for_controller?("RealEstateCompany")

假设您希望在
施工公司控制器
房地产公司控制器
中使用此设施:

def correct_user
  @company = controller_name.classify.constantize.find(params[:id])     
  redirect_to(root_path) unless (current_user == @company.user)
end 

假设您希望在
施工公司控制器
房地产公司控制器
中使用此设施:

def correct_user
  @company = controller_name.classify.constantize.find(params[:id])     
  redirect_to(root_path) unless (current_user == @company.user)
end 
只需将此模块包含在两个模型中并执行模型级检查。 您也可以为控制器创建一个模块,但我强烈建议不要这样做(损害可维护性)

只需将此模块包含在两个模型中并执行模型级检查。
您也可以为控制器创建一个模块,但我强烈建议不要这样做(损害可维护性)。

看起来您正在尝试进行授权检查()

您是否查看过任何现有的综合授权解决方案?利用其他人的努力来解决这个共同问题可能是有意义的

这是一些例子。特别是,您可以在试图保护的方法中包含类似的内容:

authorize! :read, @company

上面写着“当前用户是否有权查看@company的详细信息”。

看起来您正在尝试进行授权检查()

您是否查看过任何现有的综合授权解决方案?利用其他人的努力来解决这个共同问题可能是有意义的

这是一些例子。特别是,您可以在试图保护的方法中包含类似的内容:

authorize! :read, @company

上面写着“当前用户是否有权查看@company的详细信息”

房地产公司和建筑公司是分开的模型有什么原因吗?如果你只有一个公司模式,这就太枯燥了。是的,房地产公司在几个方面与建筑公司不同,例如建筑公司有很多项目,而房地产公司没有。房地产公司和建筑公司是分开的模式有什么原因吗?如果你只有一个公司模式,这会很枯燥。是的,RealEstateCompany在几个方面与ConstructionCompany不同,例如ConstructionCompany有很多:项目,而RealEstateCompany没有。问题不在于将当前用户@company.user,问题是找到当前用户,我必须通过@company=ConstructionCompany.find(params[:id])来找到它,
@company=ConstructionCompany.find(params[:id])
有什么问题吗?是的,我想我就是干不了这个代码,有4个型号我有相同的方法纠正用户,在这里,我找到了使用控制器请求的实例,然后检查了所有者问题不是要放置当前用户!=@company.user,问题是找到当前用户,我必须通过@company=ConstructionCompany.find(params[:id])来找到它,
@company=ConstructionCompany.find(params[:id])
有什么问题吗?是的,我想我就是干不了这个代码,有4个型号我有相同的方法纠正用户,在这里,我找到了使用控制器请求的实例,然后检查了ownerYeah,这虽然没有很好地解释,但给出了足够的答案!是的,这虽然不是很好的解释,但给出了足够的答案!