我的home.html.erb
文件中包含以下代码;
<!-- if seeker is logged in show button "Grab it" -->
<% if user_signed_in? %>
<div class="grabit alignright">
<small>want to work on this?</small>
<!-- if seeker is not logged in, show him the output text of "Sign in to work on this job" -->
<% else %>
<small>are you a guru? want to work on this? Sign up.</small>
<% end %>
</div>
现在您可以看到我正在尝试将Seeker作为用户角色。根据具有该类型角色的用户类型是否已登录,将显示不同的内容。
我安装了Devise + CanCan。现在对此非常新,我看了一遍,看看如何做到这一点。我将拥有具有正常用户角色的“用户”和具有搜索者角色的“搜索者”。使用上面的代码仅显示用户登录时的情况,而不是搜索者。
是否像seekers_signed_in
一样简单?我应该用吗?与user_signed_in
比较?我为用户和搜索者以及管理员生成了Devise视图。管理员将能够为用户和搜索者删除,更新等。用户发布项目,搜索者抓住他们。
有人可以帮忙吗?
答案 0 :(得分:0)
您无需创建用户&amp;搜索者(两个设计模型),您可以只创建一个常见模型并将其称为用户,然后根据需要添加任意数量的角色。
我建议使用此gem进行简单的角色配置,
然后在home.html.erb
中,您只需执行以下操作:
<!-- if seeker is logged in show button "Grab it" -->
<% if user_signed_in? && current_user.is_seeker? %>
<div class="grabit alignright">
<small>want to work on this?</small>
<!-- if seeker is not logged in, show him the output text of "Sign in to work on this job" -->
<% else if !user_signed_in?%>
<small>are you a guru? want to work on this? Sign up.</small>
<% else%>
<small>You are not a seeker, you need to be a seeker!</small>
<% end %>
</div>
CanCan用于控制器级别,因此上述方法很容易直接适用于您的情况。
我希望这会有所帮助。