我很难过这个。间歇性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的东西? –