一种过滤对嵌入在名为" Obra"的模型中的索引视图(planilhas)的访问的方法。基于用户是否与特定的" Obra"。
相关联我试图将filter_access_添加到索引操作,但我的模型 Planilha 嵌套在 Obra 上,我想检查当前用户是否已分配到 Obra 。因此,他/她可以看到与该特定 obra 相关联的所有 Planilhas 。
我已经在Planilhas_controller中尝试了以下内容
filter_access_to [:index], require: manage, context: obras, attribute_check: true
但事实是,根据docs,它会尝试找到认为 params [:id] 的上下文模型,但事实并非如此,我需要它要参数[:obra_id]
我还尝试在控制器中使用nested_in选项,如下所示:
filter_access_to [:index], require: :manage, nested_in: :obras, attribute_check: true
但是,正如预期的那样,我无法访问索引页面,因为它找不到Planilha的ID。
我的模特是:
class User < ActiveRecord::Base
has_many :obras, through: :responsibilities
end
class Obra < ActiveRecord::Base
has_many :planilhas
has_many :users, through: :responsibilities
end
class Planilha < ActiveRecord::Base
belongs_to :obra
end
感谢您的帮助
我设法通过创建构建对象Planilha的before_filter操作来解决这个问题。我不相信这是最好的解决方案,但它确实有用。
Planilhas_Controller:
before_filter :set_planilha
def set_planilha
@planilha = !params[:id].nil? ? Planilha.find(params[:id]) : Planilha.new
end