Я пытаюсь понять, как использовать брандмауэр с моими ресурсами, расположенными по имени.Rails 5, Pundit с ресурсами, расположенными по имени
Я читал много сообщений SO от других, говорящих, что у них есть проблемы с этим, но те обсуждения, которые обсуждались в журнале о проблемах с драгоценными камнями. Трекер проблем не знает, что такое решение - так что я застрял.
У меня есть папка под названием Stance, которая является пространством имен для вложенных ресурсов, один из которых называется обзором.
model.rb файл называется:
class Stance::Overview < ApplicationRecord
Контроллер называется:
class Stance::OverviewsController < ApplicationController
таблица в БД называется:
create_table "stance_overviews", force: :cascade do |t|
В моем приложении/политики, я пробовал различные способы создания политики, с различными попытками затем ссылаться на политику в представлениях. Я не могу найти способ, который работает.
Я попытался сделать папку Stance с файлом под названием overview_policy.rb с:
class Stance::OverviewPolicy < ApplicationPolicy
С моей точки зрения организации (которая имеет одну позицию :: Обзор), я определить локальную переменную) :
<% if current_user.organisation_id != @organisation.id %>
<%= render 'stance/overviews/internal', overview: @organisation.overview %>
<% else %>
<%= render 'stance/overviews/external', overview: @organisation.overview %>
<% end %>
Тогда в представлении, я пытаюсь:
<% if policy(overview).show? %>
<p><%= overview.explanation %></p>
<% end %>
Я не могу найти вариации O Это работает. Все, что я пробовал, - это предположение, основанное на сообщениях SO, большинство из которых предшествуют разговорам по трекеру проблемы с pundit.
У меня нет сообщения об ошибке, но контент не отображается, когда он должен.
Может ли кто-нибудь увидеть, что мне нужно сделать, чтобы иметь возможность использовать мужик с ресурсами с именами?
У вас есть папка stance для файла политики с именем Stance или stance? Я думаю, что все должно быть в нижнем регистре. У нас есть аналогичная установка с одной из наших моделей, и она работает нормально. Однако в контроллере есть единственное разрешение. – Scott
У меня есть папка с нижним регистром, называемая «stance» внутри моей папки политик. Как вы называете свой класс в политике? Я делаю это: class Stance :: OverviewPolicy
Mel
Именно так у меня есть моя настройка. Какая у вас ошибка? – Scott