Ruby on Rails应用程序崩溃:Ruby.exe“[地址]处的指令引用[地址]处的内存。内存无法”写入“

时间:2011-08-08 20:06:46

标签: ruby-on-rails ruby memory ckeditor

当我在本地运行Ruby on Rails应用程序时,它会在一个特定页面上崩溃。每当我加载页面时,我都会从Ruby.exe中收到以下错误:

[地址]处的指令引用[地址]处的内存。记忆无法“写入”。

一旦发生此错误,服务器崩溃,我必须使用'rails s'重新启动。我已经尝试删除/评论各种部分和功能,试图告诉单个部分是否导致它,但我继续得到这个错误。这种情况发生在不同的浏览器中(包括firefox和chrome)。当我在我的localhost上运行我的应用程序时发生崩溃。

我使用的是ruby版本1.9.2p290,Rails 3.0.9和Windows XP SP3。我的同事在相同的设置下遇到了同样的问题。我们都使用windows XP RubyInstaller来安装Ruby。当我开始收到此错误时,我下载并再次运行安装程序,但这并没有解决问题。

有谁知道可能导致此错误的原因,或者我如何弄清楚问题是什么?如有必要,我可以发布更多代码。


在我们正在处理的Web应用程序中的许多类似页面中,只有一个页面以这种方式崩溃。页面的代码(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>

部分“项目/表单”和“key_questions / form”都以相同的方式包含在类似的页面new.html.erb中,并且该页面崩溃。< / p>


更新:好的,所以在考虑这个问题并同时处理其他事情时,我们暂时从项目/表格部分和key_questions /表格部分中删除了 CKEditor 。虽然我以前尝过这个(grrr),但这次似乎已经停止了崩溃。可能我上次在移除它时不够彻底。

只要C000ditor存在于new.html.erb中,页面就能正常工作,数据会正常保存。

但是当cwwditor存在于edit.html.erb中时,表格中已有数据,上述崩溃就会发生。这有时会在编辑器本身部分或完全加载之后发生,或者有时在编辑器加载之前发生。崩溃似乎与从数据库中提取的信息有关,以便在CKEditor中显示以进行编辑。

有关我们如何使用CKEditor的更多信息:在“projects / form”部分中,在页面中创建了两个CKEditor。 “key_questions / form”部分位于jQuery对话框中,当用户单击“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 :(得分:0)

您是否尝试过使用瘦服务器?如果你在你的Gemfile中添加了thin,那么运行bundle install然后执行bundle exec rails server thin -e development然后你可能会发现很多崩溃问题都消失了 - 我当然也这样做了。