2011-10-28 95 views
0

我想比較@question.id與數據庫表Work中的值。如何在問題控制器的顯示操作中執行此操作?比較控制器內兩個不同模型的屬性

我想比較@question.id@community.community_activity,但是當我做這個問題控制器內的@communitynil

You have a nil object when you didn't expect it! 
The error occurred while evaluating nil.community_activity 

如何解決這個???

if @question.id != @community.community_activity.for_communities(60).object_id and current_user.role.title.strip == "Test" 
    redirect_to 'public/access_denied.html' 
    return 
+0

我不明白你的問題。 「明確」是什麼意思?你是否嘗試在'Work'中找到一個記錄,其中某列的值等於'@ question.id'的值?你是這個意思嗎? – Mischa

+0

@Mischa請看編輯過的問題並幫助我! –

+1

要回答你的問題,你必須告訴我們你的代碼。這還不夠。至少在發生這種情況時發佈控制器操作。 – Mischa

回答

1

基於你向我們展示了什麼,我可以建議如下:

if @community.nil? || (@question.id != @community.community_activity.for_communities(60).id && current_user.role.title.strip == "Test") 
    redirect_to '/access_denied.html' 
    return 
end 

或者,也許這是比較合適的:

if (@community.nil? || @question.id != @community.community_activity.for_communities(60).id) && current_user.role.title.strip == "Test" 
    redirect_to '/access_denied.html' 
    return 
end 
+0

定義了模型@community_activities = CommunityActivity.for_communities(60)其中for_communities是一個named_scope,然後它就起作用了!謝謝@Mischa !!! –

相關問題