ユーザーが特定の役割を果たす場合は、「新しいキャンペーン」ボタンの作成に少し迷っています。私が持っているモデル/ roles.rbでRails 5:条件と地方の部分図
:私が持っているコントローラ/ 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
:
def dashboard_1
@roles = current_user.roles
if @roles.any? { |role| role.creater_dashboard? || role.deleter_dashboard? }
flash.now[:error] = "You are creater/deleter!"
elsif @roles.any? { |role| role.viewer_dashboard? }
flash.now[:error] = "You are viewer!"
else
redirect_to users_path
end
end
私はこのような部分的なキャンペーン/ _new.html.erbがあります
<li>
<%= link_to new_campaign_path(@campaign), {method: 'get', class: 'btn btn-w-m btn-primary'} do %>New campaign
<% end %>
</li>
ダッシュボード/ dashboard_1.html.erb私は「新しいキャンペーン」ボタンをレンダリングする必要があります。ユーザーがダッシュボードのための「デリータ」の「クリエイター」である場合:
<% if ... %>
<%= render partial: "campaigns/new" %>
私はそれが地元の人々で行うことができますがわかってきたように、しかし、私はどのように把握することはできませんか?助けてくれてありがとう!レイアウト/ application.html.erbで
を追加しました
私はこれがあります。
<!-- Navigation -->
<%= render 'layouts/navigation' %>
を、部分_navigation.html.erbに私はこれがありますどのように
<li class="<%= is_active_controller('dashboards') %>">
<% if @creator_deleter %>
<%= 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>
... #other links to different parts of app
をユーザーが@creator_deleterでない場合、「ダッシュボード」リンクを部分的に非表示にするには?
はい、あなたが絶対に正しいとソリューションをありがとうございましたで、そのためにテストすることができます!私は '@creator_deleter = true'ということをしなければならないと気づいていません:) – matiss
私は部分的に_navigation.html.erbを持っています。ユーザーが@creator_deleterでない場合、link_toダッシュボードを非表示にするにはどうすればよいですか?助けてくれてありがとう! – matiss
は単純にレンダリングしません。<%if @creater_deleter%><%= link_to ....%><% end %> – David