gpt4 book ai didi

ruby-on-rails - Ruby on Rails-错误500

转载 作者:行者123 更新时间:2023-12-03 09:03:28 26 4
gpt4 key购买 nike

我有一个在轨道上运行ruby的客户端,但是不幸的是,我不是100%相信Ruby ...今天无论如何,他们的网站在浏览该网站时始终返回错误500。

查看error_log,我可以看到的是以下内容:

[ 2015-11-16 20:16:45.5125 11424/7fcdb8049700 Pool2/SmartSpawner.h:298 ]: Preloader for /home/rails/production started on PID 22379, listening on unix:/tmp/p$
App 22504 stdout:
App 22950 stdout:
App 22950 stderr: /home/rails/.rvm/gems/ruby-1.9.3-p484/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant SMTPSession
App 22950 stderr: /home/rails/.rvm/gems/ruby-1.9.3-p484/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: already initialized constant POP
App 22950 stderr: /home/rails/.rvm/gems/ruby-1.9.3-p484/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: already initialized constant POPSession
App 22950 stderr: /home/rails/.rvm/gems/ruby-1.9.3-p484/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: already initialized constant POP3Session
App 22950 stderr: /home/rails/.rvm/gems/ruby-1.9.3-p484/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant APOPSession
App 22950 stdout: MultiParameterHack loaded
App 22950 stderr: [deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set$
[ 2015-11-16 20:33:27.7232 11424/7fcdb9f61700 Pool2/SmartSpawner.h:298 ]: Preloader for /home/rails/production started on PID 22950, listening on unix:/tmp/p$
App 23101 stdout:

谁能帮我这个忙?

我也可以在production.log中看到这一点:
Rendered shared/_meganav.html.erb (86.0ms)
Rendered pages/home.html.erb within layouts/application (197.9ms)
Completed 500 Internal Server Error in 278ms
** [Airbrake] Success: Net::HTTPOK
** [Airbrake] Environment Info: [Ruby: 1.9.3] [Rails: 3.0.19] [Env: production]
** [Airbrake] Response from Airbrake:
UUID: 1555278126118213905
URL: https://airbrake.io/locate/1555278126118213905

ActionView::Template::Error (undefined method `has_image?' for nil:NilClass):
269: <% event = Event.featured.newest.first %>
270:
271: <article class="featured-event">
272: <% if event.has_image? %>
273: <div class="image"><span></span><%= link_to(image_tag(event.image.expiring_url(:featured)), event_path(event)) %></div>
274: <% end %>
275: <div class="text">
app/views/shared/_meganav.html.erb:272:in `_app_views_shared__meganav_html_erb__3450254428998327647_59198060__3999436880091196355'
app/views/layouts/application.html.erb:223:in `_app_views_layouts_application_html_erb__1905251585106566541_49797400_3662579409495417543'

最佳答案

我怀疑您的问题是没有与Event匹配的featured.newest,这意味着event为nil。由于nil#has_image?不是可用的方法,因此抛出NoMethodError,并且最终在服务器上看到500错误。

事件查询属于您的 Controller ,并且您的输出应使用nil-guard来确保不会发生这种情况。例如:

# app/controllers/pages_controller.rb
def index
@event = Event.featured.newest.first
end

# app/views/pages/home.html.erb
<% if @event.present? %>
<article class="featured-event">
...
</article>
<% end %>

关于ruby-on-rails - Ruby on Rails-错误500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33744232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com