我很難過這個。間歇性NoMethodError RoR應用程序
我得到:
NoMethodError in Customers#edit
Showing /opt/www/vhosts/barhi/app/views/customers/edit.html.erb where line #73 raised:
undefined method `start_date' for #<Job:0x9fea5ac>
間歇。
如果我回去index.html.erb和SHIFT +重裝,然後單擊客戶,它的工作原理和作品每隔客戶以及!
流量:
客戶/ index.html.erb
我看到客戶的名單。有些人有工作,有些人不工作 - 此錯誤僅在客戶沒有任何工作時纔會出現。
我點擊一個客戶沒有工作 - 它流入該方法customers_controller:
def edit
@customer = Customer.find(params[:id])
if params[:job_id]
@selectedJob = Job.find_by_id(params[:job_id].to_s)
else
@selectedJob = Job.new
end
@jobs = Job.find_by_customer_id(params[:id].to_s)
end
擴大NoMethodError抱怨未定義的方法起始日期:
<%if @selectedJob.start_date %><% start_date = DateTime.parse(@selectedJob.start_date) %><% start_date = start_date.strftime('%m-%d-%Y')%><%else%><% start_date = @selectedJob.start_date%><%end%>
所以,你會說:「好@selectedJob沒有被設置「 - 但是,我已經用控制器中的logger.debug語句進行了測試,並且@ selectedJob.new工作正常:
def new
@job = Job.new
end
我試了@job - > @selectedJob保存並測試了一下,沒有變化,所以它不是實例變量名(我真的不認爲它是開始的,但有時候我只是啞巴)
踢球者是當我點擊後退按鈕時,移動並重新加載頁面,然後點擊沒有工作的客戶 - 工作正常。
開發工具控制檯顯示:
edit
/customers/51b78a4e97279123fd000255
GET
500
Internal Server Error
text/html
移位之前+重裝,再經過:
edit
/customers/51b78a4e97279123fd000255
GET
200
OK
text/html
Other
jquery-ui.css
code.jquery.com/ui/1.10.2/themes/smoothness
GET
200
OK
text/css
edit:10
Parser
(from cache)
jquery-1.9.1.js
code.jquery.com
GET
200
OK
application/x-javascript
edit:11
Parser
(from cache)
jquery-ui.js
code.jquery.com/ui/1.10.2
GET
200
OK
application/x-javascript
edit:11
Parser
截斷,因爲有很多東西在頁面加載 - 但最重要的問題,爲什麼edit.html.erb 有時無法加載?
通過註銷應用程序,轉移+重新加載以清除緩存,登錄,轉到客戶頁面,單擊客戶沒有工作,失敗,返回按鈕,Shift +重新加載,單擊,它的工作。
在某些控制器中必須有某種步驟,或者在登錄後無法正確調用編輯頁面(如前頁上的某些排除語句?),但是當您在索引頁上時加載正常。
我要瘋了。
如果你可以禁用你的緩存並查看它如何在沒有所有這些移位重載的情況下運行,這將有所幫助。 –
@Zach - 按照您的建議,禁用了緩存,並且系統的工作原理完全相同。登錄,點擊客戶,點擊沒有工作的客戶,錯誤,點擊返回,重新加載(不移動+重新加載但無論如何都不緩存)再次點擊,錯誤,爲了好玩而重複兩次,點擊返回,然後點擊它的作品。沒有行爲改變。 – notaceo
您是否將超出默認選項的任何內容添加到您的Gemfile中?什麼版本的Rails?而且我看到你正在使用散列而不是id - 你在ActiveRecord上,還是在使用類似Mongoid的東西? –