現在用設計進行驗證和cancancan爲authorization.cancancan工作正常一些控制器,但會因某些屏幕未定義的方法錯誤..未定義的方法`TOTAL_PAGES'在rails4錯誤
assessments_controller.rb
def index
@projects = Project.find_by_sql("SELECT project_id, project_name FROM projects WHERE company_id = "+ current_dashboard_user.company_id.to_s +
" ORDER BY project_name")
getProjectId
getResult #get search result
respond_to do |format|
format.html
format.js
end
end
def getResult
#Search Result page
if (@project_id != nil && @project_id != "") then
@assessments = Assessment.find_by_sql("SELECT assess.assessment_id, assess.company_id, assess.project_id, assess.release_cycle_no,
assess.assessment_description, DATE_FORMAT(assess.start_date,'%d/%m/%Y') start_date_display,
DATE_FORMAT(assess.end_date,'%d/%m/%Y') end_date_display, assess.project_phase_id, pp.project_phase_name,
CASE WHEN assess.closed_status = 'Y' THEN 'Closed' ELSE 'Open' END AS closed_status
FROM assessments assess, project_phases pp
WHERE assess.company_id = " + current_dashboard_user.company_id.to_s +
" AND assess.project_id = " + @project_id.to_s +
" AND assess.project_phase_id = pp.project_phase_id ORDER BY assess.assessment_id DESC")
@assessments = @assessments.paginate(:per_page => 5, :page => params[:page])
end
end
https://gist.github.com/anonymous/9ccee7be3e7fa2df2bca
我的看法。 https://gist.github.com/anonymous/272e6cc05e01d526ef0a
我得到的錯誤是 http://imgur.com/1qyHen1
'total_pages'是'will_paginate'方法,而不是'cancancan'本身。 – blelump 2014-11-22 12:15:13
@blelump問題在於cancan,因爲在該控制器中cancancan無法根據load_and_authorize_resources方法授權評估資源。因此,我們必須跳過此索引操作並手動檢查每個資源的授權索引。答案已經實施並正在起作用。 – Rubyrider 2014-11-22 13:12:25