Сбои приложения Ruby on Rails: Ruby.exe "Инструкция по адресу [адрес] ссылается на память по адресу [адрес]. Память не может быть" записана " - PullRequest
0 голосов
/ 09 августа 2011

Когда я запускаю приложение Ruby on Rails локально, оно продолжает падать на одной конкретной странице.Всякий раз, когда я загружаю страницу, я получаю следующую ошибку от Ruby.exe:

Инструкция по адресу [адрес] ссылается на память по адресу [адрес].Память не может быть «записана».

Как только эта ошибка происходит, сервер падает, и мне приходится перезагружаться с 'rails s'.Я пытался вырезать / комментировать различные частичные функции и функции, чтобы попытаться определить, является ли причиной этого один раздел, но я продолжаю получать эту ошибку.Это происходит в разных браузерах (как Firefox, так и Chrome).Сбой происходит, когда я запускаю свое приложение на локальном хосте.

Я использую ruby ​​версии 1.9.2p290, Rails 3.0.9 и Windows XP SP3.У моего коллеги такая же проблема с той же настройкой.Мы оба использовали Windows XP RubyInstaller для установки Ruby.Когда я начал получать эту ошибку, я снова загрузил и запустил установщик, но это не решило проблему.

Кто-нибудь знает, что может быть причиной этой ошибки, или как я могу выяснить, в чем проблемаявляется?При необходимости я могу опубликовать больше кода.


Из множества похожих страниц веб-приложения, над которым мы работаем, только одна страница аварийно завершает работу.Код для страницы (edit.html.erb) приведен ниже:

<script type="text/javascript">
set_toolbar("projects", "<%= @project.id %>", "", "", "edit");
</script>

<%= render :partial => "sidebars/sidebar", :locals => {:curr_page => "info"} %>
<%= render :partial => "page_title", :locals => {:page_title => "Project Information"} %>

Use this form to modify your project, then click the "Save and Continue" button 
to follow the process shown at the right.

<br/><br/>

<%= render "projects/form" %>

<div id="add_keyquestion_box">
<%= render "key_questions/form" %>
</div>

<script type="text/javascript">

$("#add_keyquestion_box").dialog({
        autoOpen: false,
        minWidth: 600
    });

</script>

Частицы "projects / form" и "key_questions / form" включены в аналогичную страницу new.html.erb, точно так же, и эта страница не аварийно завершает работу.


ОБНОВЛЕНИЕ: Хорошо, поэтому, размышляя об этой проблеме и одновременно работая над другими вещами, мы временно удалили CKEditor из обоих проектов / форма частичная и из key_questions / форма частичная.Хотя я пробовал это ранее (grrr), похоже, на этот раз остановил сбой.Возможно, я не был достаточно тщателен в прошлый раз в своем удалении этого.

Всякий раз, когда CKEditor существовал в new.html.erb, страница работала бы нормально, а данные сохранялись бы нормально.

НО, если в edit.html.erb существовал CKEditor с данными уже в форме, произойдет сбой, описанный выше.Иногда это происходит после частичной или полной загрузки самого редактора, а иногда до того, как редактор загружается вообще.Сбой, похоже, связан с извлечением информации из базы данных для отображения для редактирования в CKEditor.

Дополнительная информация о том, как мы использовали CKEditor: в части "projects / form" создаются два CKEditor.на странице.Часть «key_questions / form» находится в диалоговом окне jQuery, которое появляется, когда пользователь нажимает кнопку, содержащуюся в «projects / form».Функциональность этой кнопки содержится в "projects / form" и выглядит следующим образом:

<script type="text/javascript">
$("#add_kq_button").bind("click", function(event)
{
    event.preventDefault();
    $.ajax({
      url: 'key_questions/new',
      type: "POST",
      data: { project: <%= @project.id.nil? ?  -1 : @project.id %>}
    });
});
</script>

key_questions / new.js.erb вызывает необходимую функцию открытия диалогового окна в jQuery, чтобы открыть диалоговое окно формы ключевого вопроса.

Спасибо за любые предложения, которые вы можете дать!

1 Ответ

0 голосов
/ 11 сентября 2011

Вы пробовали вместо этого использовать тонкий сервер?Если вы добавите thin в ваш Gemfile, запустите bundle install, затем выполните bundle exec rails server thin -e development, тогда вы можете обнаружить, что многие проблемы с авариями исчезли - я, конечно, сделал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...