0

我的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?我已经为用户、搜索者和管理员生成了设计视图。管理员将能够为用户和搜索者删除、更新等。用户发布项目,搜索者抓住它们。

任何人都可以帮忙吗?

4

1 回答 1

0

您不必创建用户和搜索者(两个设计模型),而是可以只创建一个通用模型并将其命名为用户,然后根据需要添加任意数量的角色。

我建议使用此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 用于控制器级别,因此上述方法对于您的情况来说既简单又直接。

我希望这将有所帮助。

于 2012-12-30T09:02:05.457 回答