0
私のアプリ私は自分の役割に従ってセクションへのリンクを表示/非表示にする必要があります。Rails 5:ユーザーが特定の役割を持っている場合、ナビゲーションからのリンクを表示します。
私が持っている モデル/ roles.rbで:
私が持っている コントローラ/ dashboards_controller.rbでclass Role < ApplicationRecord
belongs_to :user, optional: true
accepts_nested_attributes_for :user
enum general: { seller: 1, buyer: 2, seller_buyer: 3}, _suffix: true
enum dashboard: { denied: 0, viewer: 1, editer: 2, creater: 3, deleter: 4}, _suffix: true
:
レイアウト/ application.html.erbでdef dashboard_1
@roles = current_user.roles
if @roles.any? { |role| role.creater_dashboard? || role.deleter_dashboard? }
@creater_deleter = true
elsif @roles.any? { |role| role.viewer_dashboard? }
@viewer = true
else
redirect_to users_path
end
私はこれを持っています:
<!-- Navigation -->
<%= render 'layouts/navigation' %>
ユーザーが@creator_deleterがある場合
<li class="<%= is_active_controller('dashboards') %>">
<%= link_to dashboard_path do %>
<i class="fa fa-th-large"></i> <span class="nav-label" data-i18n="nav.dashboard">Dashboard</span>
<% end %>
<% end %>
</li>
<li class="<%= is_active_controller('campaigns') %>">
<%= link_to campaigns_path do %>
<i class="fa fa-clipboard"></i> <span class="nav-label" data-i18n="nav.campaigns">Campaigns</span>
<% end %>
</li>
... #other links to different parts of app
どの部分に「ダッシュボード」リンクを表示するには:
と部分レイアウト/ _navigation.html.erbに私は、これはありますか?注:ただし、すべてのユーザーに「キャンペーン」リンクを表示する必要があります。私が知ったように、この時点からAJAXを使い始めるかもしれません...何か助けてくれてありがとう!
を確認することができます残念ながら_layouts/_navigation.html.erb_のように動作していない
は、このエラーを与える:_undefinedローカル変数やメソッドは 'それはと思われるcreator_deleter'_インスタンス変数はこのように部分的に渡されません。 – matiss