【发布时间】:2011-08-08 20:06:46
【问题描述】:
当我在本地运行我的 Ruby on Rails 应用程序时,它总是在一个特定页面上崩溃。每当我加载页面时,我都会从 Ruby.exe 收到以下错误:
[address] 处的指令引用了 [address] 处的内存。内存无法“写入”。
一旦发生此错误,服务器就会崩溃,我必须使用“rails s”重新启动。我尝试删除/注释掉各种部分和函数,以尝试判断是否是单个部分导致它,但我继续收到此错误。这发生在不同的浏览器(firefox 和 chrome)中。当我在本地主机上运行我的应用程序时发生崩溃。
我使用的是 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>
部分“projects/form”和“key_questions/form”都以完全相同的方式包含在类似的页面new.html.erb中,并且该页面不会崩溃。
更新:好的,所以在考虑这个问题并同时处理其他事情的同时,我们暂时从项目/表单部分和 key_questions/表单部分中删除了 CKEditor。虽然我之前尝试过这个(grrr),但这次似乎已经停止了崩溃。可能我上次删除它时不够彻底。
只要 CKEditor 存在于 new.html.erb 中,页面就会正常工作,数据也会正常保存。
但是当 CKEditor 存在于 edit.html.erb 中,并且表单中已经存在数据时,就会发生上述崩溃。这有时会在编辑器本身部分或完全加载之后发生,或者有时在编辑器完全加载之前发生。崩溃似乎与从数据库中提取信息以在 CKEditor 中显示以供编辑有关。
关于我们如何使用 CKEditor 的更多信息:在“项目/表单”部分中,在页面中创建了两个 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 中调用必要的对话框打开函数来打开关键问题表单对话框。
感谢您提供的任何建议!
【问题讨论】:
-
您使用的是哪个版本的 Rails?哪个版本的 Ruby?哪个版本的 Windows?
-
已更新以添加该信息,抱歉我忘记了!
-
能否贴出与崩溃页面相关的代码?
-
您是否使用rubyinstaller.org 安装了 ruby?Rails 不会导致此错误。我认为它来自一个糟糕的 ruby 安装。
-
您的生产设置是什么?每当我不得不在 Windows 上开发时,我总是让 vm 运行与服务器上相同的 linux,并通过共享在其上进行开发。 VMWare 播放器是免费的。
标签: ruby-on-rails ruby memory ckeditor