Ruby on rails ActionView::Template::错误:仅在live server上未定义方法
RubyonRails的问题有点棘手,因为代码在本地运行良好,但在我将其推送到实时服务器上时就不行了 我已经使用迁移将一些int列添加到表中,并有一些复选框来确定特定状态的项是否显示在特定页面上,例如:Ruby on rails ActionView::Template::错误:仅在live server上未定义方法,ruby-on-rails,Ruby On Rails,RubyonRails的问题有点棘手,因为代码在本地运行良好,但在我将其推送到实时服务器上时就不行了 我已经使用迁移将一些int列添加到表中,并有一些复选框来确定特定状态的项是否显示在特定页面上,例如: status\page myitems featureditems saleitems status1 X x x status2 x x 这在本地开发环境中运行良好,但当我将代码推送
status\page myitems featureditems saleitems
status1 X x x
status2 x x
这在本地开发环境中运行良好,但当我将代码推送到live server时,“添加新功能”页面无法加载,出现以下错误:
Started GET "/admin/statuses/new" for 86.159.115.236 at 2012-08-19 13:39:12 -0400
Processing by Admin::StatusesController#new as HTML
Rendered shared/_validationerror.html.erb (0.0ms)
Rendered admin/statuses/_form.html.erb (2.1ms)
Rendered admin/statuses/new.html.erb within layouts/application (2.2ms)
Completed 500 Internal Server Error in 4ms
ActionView::Template::Error (undefined method `show_my_items' for #<Status:0xb6c1690>):
20: </tr>
21:
22: <tr>
23: <td align="center"><%= f.check_box :show_my_items %></td>
24: <td align="center"><%= f.check_box :show_latest_items %></td>
25: <td align="center"><%= f.check_box :show_featured_items %></td>
26: <td align="center"><%= f.check_box :show_search_results %></td>
app/views/admin/statuses/_form.html.erb:23:in `block in
_app_views_admin_statuses__form_html_erb__566719799_79558060'
app/views/admin/statuses/_form.html.erb:1:in
`_app_views_admin_statuses__form_html_erb__566719799_79558060'
app/views/admin/statuses/new.html.erb:7:in
`_app_views_admin_statuses_new_html_erb__880262090_94647510'
app/controllers/admin/statuses_controller.rb:31:in `new'
2012-08-19 13:39:12-0400:86.159.115.236的开始获取“/admin/statuses/new”
管理员处理::状态控制器#新为HTML
呈现共享/_validationerror.html.erb(0.0ms)
呈现的管理员/statuses/_form.html.erb(2.1ms)
布局/应用程序中呈现的admin/statuses/new.html.erb(2.2ms)
在4ms内完成500个内部服务器错误
ActionView::Template::Error(针对#的未定义方法'show_my_items'):
20:
21:
22:
23:
24:
25:
26:
app/views/admin/statuses/_form.html.erb:23:in`block in
_应用程序视图管理状态表单html erb 566719799 79558060'
app/views/admin/statuses/_-form.html.erb:1:in
`_应用程序视图管理状态表单html erb 566719799 79558060'
app/views/admin/statuses/new.html.erb:7:in
`_应用程序\查看\管理\状态\新建\ html \ erb \ 880262090\ 94647510'
app/controllers/admin/statuses\u controller.rb:31:in'new'
在本例中,“show_my_items”是附加到状态的字段之一(由第1页表示)
此外,在live上,我可以使用复选框编辑状态(但它是int数据类型…),但在live上,虽然我可以查看编辑页面并提交而不出错,但它实际上不会更新字段
所以列存在于数据库中,代码与我在live上的代码相同,但错误只发生在live服务器上。两个平台上的Rails版本相同(3.1.0.rc8),ruby版本略有不同(本地版本:1.9.2p320,实时版本:1.9.3p194)
不知道发生了什么…请确定,您是否在生产模式下在服务器上运行迁移
$ RAILS_ENV=production rake db:migrate
请确定,您是否在生产模式下在服务器上运行迁移
$ RAILS_ENV=production rake db:migrate
问题似乎是乘客没有正确启动。要么比我想象的时间长,要么出了问题,但重新启动乘客后,它工作正常。问题似乎是乘客没有正确启动。要么比我想象的要长,要么是出了问题,但重新启动passenger后,它运行得很好。好吧……我确实在开发模式下运行了它,然后在生产模式下重新运行:
$export RAILS\u ENV=production
-所以我检查了代码,所有代码似乎都正常,并且列都存在于数据库中。这一切都很奇怪。嗯……我最初确实在开发模式下运行了它,然后在生产模式下重新运行:$export RAILS\u ENV=production
——因此我检查了代码,所有的代码看起来都是有序的,并且列存在于数据库中。这一切都很奇怪。