问题描述
我在多租户应用中使用Active Admin。我还使用Searchkick,该模型在每个模型中都有一个自定义的租户特定索引:
class Budget < ApplicationRecord
multi_tenant :company
searchkick inheritance: true,index_name: -> { [MultiTenant.current_tenant.tenant_name,model_name.plural,Rails.env].join('_') }
end
问题在于在AA中,此逻辑失败,因为已设置了租户。我希望能够在更新记录时在AA中进行设置。
例如,我将更新http:// localhost:4000 / admin / budgets / dt2kqvgm,其中dt2kqvgm
是记录的友好ID。所以我想打电话给类似的人
MultiTenant.current_tenant = Budget.friendly.find(params['budget']['company_id'])
当我创建/更新记录等时
我现在得到:
undefined method `tenant_name' for nil:NilClass
因为在我的应用程序控制器中,租户是根据用户身份验证设置的,以确定当前公司的范围等。在AA中,我希望/需要根据似乎无法从AA控制器逻辑访问的参数进行设置。我的参数在AA中看起来像这样:
{"utf8"=>"✓","_method"=>"patch","authenticity_token"=>"PrhNGnPvV1Qfb5RCwTVv4Wwz9tjf9SFy2VWDcyJXoFLytM8y5ZAyF7h8I7xa+fy01E9Fc/v2CvR52I4/LKOLHQ==","budget"=>{"company_id"=>"9","name"=>"qweqwe","description"=>"qweqwe","notes"=>"qwee","flag_active"=>"1","slug"=>"dt2kqvgm","title"=>"qweqwe"},"commit"=>"Update Budget","controller"=>"admin/budgets","action"=>"update","id"=>"dt2kqvgm"}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)