當試圖訪問控制器上的非資源性操作時,我得到一個NameError uninitialized constant WorkoutLog
。Rails 3 NameError(未初始化的常量<controllerName>)
我的控制器看起來如下:
class WorkoutLogController < ApplicationController
def index
# random code
end
def on_date
# random code
end
end
我的路線文件:
match "workout_log/:date", :controller => "workout_log", :action => "on_date", :as => "log_on_date"
match "workout_log", :controller => 'workout_log', :action => 'index'
然後,我有我的link_to這樣:
<%= link_to "View Log", log_on_date_path(:date => Date.today.strftime('%d-%B-%Y')), :remote => true, "data-type" => "html" %>
的WorkoutLogController沒有模型在它後面 - 它只是一個控制器。然而,因爲它引發以下錯誤,我不能執行對on_date的請求:
NameError (uninitialized constant WorkoutLog):
當我運行rake routes
它似乎是罰款,因爲它會生成以下:
log_on_date /workout_log/:date(.:format) {:controller=>"workout_log", :action=>"on_date"}
workout_log /workout_log(.:format) {:controller=>"workout_log", :action=>"index"}
我可以我不知道問題出在哪裏(特別是在過去的一個晚上試圖弄清楚之後)。鋼軌是否在尋找與之相關聯的模型,並且未能這樣做?
我已經完全複製了您的代碼,因爲它顯示在這裏,它適用於我。想知道在路線上是否有額外的東西可能?另外,你的控制器應該命名爲workout_log_controller.rb,否則你會得到一個路由錯誤。不是你正在尋找的答案,但我希望它有幫助。祝你好運。 – miked 2012-02-13 02:23:05
文件名是workout_log_controller.rb(如您所述)。這就是讓我對這個問題感到厭煩的 - 所有的說法,它應該工作,哈哈。我會進一步檢查路線以及它們的順序或優先順序。謝謝您的幫助! – MunkiPhD 2012-02-13 03:32:18