如何用设计检查用户的自定义/索引操作?

时间:2014-10-01 10:02:40

标签: ruby-on-rails devise

我正在尝试检查photos#latest视图中的一些规则,但我不知道如何在照片控制器中定义用户。

我想查一下:

<% if current_user == @photo.user or current_user.has_role? :admin %>
 <%= link_to "Editar Spot", edit_user_photo_path(@user, @photo), class: "edit" %>
<% end %>

在我的控制器中:

def latest
    @user = current_user
    @categories = Category.all(:order => 'name')
    @zones = Zone.all(:order => 'name')
    @photos = Photo.latest_photos.quality.paginate(:page => params[:page])
    @action = 'general'
    render :index
end

那会说:

nil的未定义方法`user':NilClass

当我没有ID或参数时,如何在控制器中定义用户?

由于

1 个答案:

答案 0 :(得分:0)

您收到错误undefined method `user' for nil:NilClass。你的@photo变量似乎是零。您必须首先检查@photo是否为零,然后您可以检查照片的用户是否是current_user。尝试下面的代码或确保@photo有一些价值。

<% if (@photo.present? and current_user == @photo.user) or current_user.has_role? :admin %>