【发布时间】:2017-02-16 20:51:01
【问题描述】:
我的应用需要根据用户角色显示/隐藏部分链接。
在 models/roles.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
在 controllers/dashboards_controller.rb 我有:
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
在 layouts/application.html.erb 我有这个:
<!-- Navigation -->
<%= render 'layouts/navigation' %>
在部分 layouts/_navigation.html.erb 我有这个:
<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
如果用户是@creator_deleter,如何部分显示“仪表板”链接? 注意:但是我需要向所有用户显示“广告系列”链接。我发现我可能从此时开始使用 AJAX...非常感谢您的帮助!
【问题讨论】:
标签: ruby-on-rails ruby views partial-views partial