Я поддерживаю сайт Ruby-on-Rails (на самом деле работает JRuby 1.5.5, Rails версии 2.3.10), и я вижу что-то довольно странное. Определенное действие контроллера вызывает исключение в журналах, когда доступ к боту поисковой системы:Проблема Strange RoR; googlebot получает ошибку, человек видит страницу
ActionView::TemplateError (can't convert nil into String) on line #14 of app/vie
ws/scenarios/show_send_message.rhtml:
11: <% if ! is_logged_in? %>
12: <p>Your email (optional, used to contact you if necessary):<br /><%= tex
t_field_tag 'user_email', @user_email || '', :size => 50 %>
13: <% if ! is_human? %>
14: <%= show_simple_captcha %>
15: <% end %>
16: <% end %>
17: <p><%= submit_tag 'Send' %>
... Тем не менее, когда я view the page as a human, он отлично работает. «show_simple_captcha» - это метод из плагина, и он не может вернуть нуль.
Кто-нибудь есть идеи, почему RoR будет реагировать по-другому на бота, чем на настоящий браузер? Я не так сильно ищу ответ на проблему, поскольку я - способ продолжить отладку, но я с радостью соглашусь с первым.
javascript in captcha. – s84
Можете ли вы предоставить трассировку стека или это так? – rwilliams
@Sam, в кавычках нет javascript, и в любом случае это не объясняет, почему я получаю эту ошибку на стороне сервера. – davmac