名前空間のリソースで専門家を使用する方法を理解しようとしています。Rails 5、名前空間を持つ専門家
私は、他の人からは、これに問題があると言っている多くのSOの投稿を読んだことがありますが、専門家の宝石発行トラッカーに関するこれまでのディスカッションはありません。問題の追跡者は、解決策が何であるかについては明確ではないので、私は立ち往生しています。
私は、ネストされたリソースの名前空間であるStanceというフォルダを持っています。その1つは概要と呼ばれます。
model.rbファイルが呼び出されます。
class Stance::Overview < ApplicationRecord
コントローラが呼び出されます。
class Stance::OverviewsController < ApplicationController
と呼ばれているDB内のテーブル:私のアプリで
create_table "stance_overviews", force: :cascade do |t|
/私はさまざまな方法でポリシーを作成しようとしましたが、ビューでポリシーを参照する際にはさまざまな試みがありました。私は動作する方法を見つけることができません。
私は、overview_policy.rbと呼ばれるファイルにスタンスというフォルダを作ってみた:
(1つのスタンス::概要を持っている)私の組織ビューでclass Stance::OverviewPolicy < ApplicationPolicy
、i)は、ローカル変数を定義します:
<% 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 %>
私が変動0を見つけることができませんこれは動作します。私が試したことはすべて、SOの投稿に基づいた推測であり、そのほとんどは専門家問題追跡者の会話に先行しています。
エラーメッセージは表示されませんが、コンテンツは必要なときにレンダリングされません。
誰もが名前空間で専門家を使用できるようにするために何が必要なのか分かりませんか?
スタンスまたはスタンスというポリシーファイルのスタンスフォルダがありますか。私はそれがすべて小文字である必要があると思う。私たちのモデルの1つと同様のセットアップがあり、うまくいきます。しかし、唯一の権限はコントローラにあります。 – Scott
私は、ポリシーフォルダー内に「スタンス」と呼ばれる小文字のフォルダーを持っています。どのようにあなたのクラスにポリシーの名前をつけますか?私はこれをやっています:class Stance :: OverviewPolicy
Mel
これはまさに私の設定です。どのようなエラーが出ますか? – Scott