2014-10-01 51 views
0

我試圖檢查我的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 

會對你說:

未定義的方法'用戶」的零:NilClass

我不應該如何在我的控制器中定義用戶有一個ID或參數?

感謝

+0

什麼是你的錯誤回溯? – 2014-10-01 10:04:46

+0

@MarekLipka,在這種情況下,回溯無關緊要,因爲代碼無效。 @Gibson你的'@ photo'變量在哪裏定義? – IS04 2014-10-01 10:07:29

+0

@Gibson你應該放置這個回溯問題而不是評論。 – 2014-10-01 10:07:35

回答

0

你所得到的錯誤undefined method `user' for nil:NilClass。你的@photo變量似乎是零。你必須首先檢查@photo是不是零,然後你可以檢查照片的用戶是否是current_user。嘗試下面的代碼或確保@圖片有一定的價值。

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