2013-06-26 34 views
0

我很难过这个。间歇性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 +重新加载,单击,它的工作。

在某些控制器中必须有某种步骤,或者在登录后无法正确调用编辑页面(如前页上的某些排除语句?),但是当您在索引页上时加载正常。

我要疯了。

+0

如果你可以禁用你的缓存并查看它如何在没有所有这些移位重载的情况下运行,这将有所帮助。 –

+0

@Zach - 按照您的建议,禁用了缓存,并且系统的工作原理完全相同。登录,点击客户,点击没有工作的客户,错误,点击返回,重新加载(不移动+重新加载但无论如何都不缓存)再次点击,错误,为了好玩而重复两次,点击返回,然后点击它的作品。没有行为改变。 – notaceo

+0

您是否将超出默认选项的任何内容添加到您的Gemfile中?什么版本的Rails?而且我看到你正在使用散列而不是id - 你在ActiveRecord上,还是在使用类似Mongoid的东西? –

回答

0

那么在这种情况下,我不认为我想通了,为什么错误是怎么回事,但我刚好起始日期日期和结束日期值接种在job.new喜欢固定的错误:

工作。新({start_date => Date.today,end_date => Date.today}),以便页面加载预填充今天日期的字段。之后从未出现问题,所以我称之为各种解决方案。

相关问题