我想弄清楚如何使用我的命名空間資源的專家。Rails 5,名稱空間資源的專家
我已經從別人那裏看過很多SO帖子,說他們在這方面有問題,但是那些早於關於權威寶石問題跟蹤器的討論。問題跟蹤器不清楚解決方案是什麼 - 所以我卡住了。
我有一個名爲Stance的文件夾,它是嵌套資源的命名空間,其中一個名爲overview。
的model.rb文件名爲:
class Stance::Overview < ApplicationRecord
控制器被稱爲:
class Stance::OverviewsController < ApplicationController
在db的表稱爲:
create_table "stance_overviews", force: :cascade do |t|
在我的應用程序/政策文件夾中,我嘗試了制定政策的各種方式,並嘗試了各種方法,然後引用視圖中的政策。我找不到可行的方法。
我試着做了一個名爲姿態與一個名爲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 %>
我無法找到一個變化Ø這是有效的。我嘗試過的所有內容都是基於SO帖子的猜測,其中大部分時間都在專家問題跟蹤器的對話之前。
我沒有收到錯誤消息,但內容在應該出現時沒有顯示。
任何人都可以看到我需要做什麼才能夠使用名稱空間資源的專家?
您是否擁有名爲Stance或姿態的策略文件的立場文件夾?我認爲它需要全部小寫。我們有一個類似的設置與我們的一個模型,它的工作正常。唯一的授權是在控制器中。 – Scott
我的策略文件夾中有一個名爲'stance'的小寫文件夾。你如何在保單中命名你的班級?我這樣做:class Stance :: OverviewPolicy
Mel
這正是我的設置。你會得到什麼錯誤? – Scott