1

请,我请求你对 Ajax 的帮助。我已经找到了几个解决这个问题的方法,但没有一个有效。

每当我尝试使用 ROR 代码更新 DIV 内容时,它都会显示代码,而不是结果。我隐藏了与我的问题无关的代码,以保持问题清晰且易于理解。

在我的 HTML 中,我有这个链接:

<%= link_to 'Adicionar lançamento (+)', '#', id: "add-lancamento"  %>

在我的 JS 文件中,我有:

$('#add-lancamento').click(function(event){
  $('#dialog').html("<%= escape_javascript( render(:partial => 'form') ).html_safe %>");
  event.preventDefault();
});

我知道该链接有效,因为#dialog 中的内容正在发生变化。但新内容是:

<%= escape_javascript( render(:partial => 'form').html_safe ) %>

我正在使用“escape_javascript”和“html_safe”,已经将“”更改为“”,但我仍然得到相同的结果。它显示代码而不处理它。它不会渲染部分。

我发现了几个与不同版本的 Rails 相关的解决方案,所以这些是我的系统详细信息:

Ruby version    1.9.3 (i386-mingw32)
RubyGems version    1.8.16
Rack version    1.4
Rails version   3.2.8
JavaScript Runtime  JScript
Active Record version   3.2.8
Action Pack version 3.2.8
Active Resource version 3.2.8
Action Mailer version   3.2.8
Active Support version  3.2.8
Middleware  
ActionDispatch::Static
Rack::Lock
#<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x39fdc08>
Rack::Runtime
Rack::MethodOverride
ActionDispatch::RequestId
Rails::Rack::Logger
ActionDispatch::ShowExceptions
ActionDispatch::DebugExceptions
ActionDispatch::RemoteIp
ActionDispatch::Reloader
ActionDispatch::Callbacks
ActiveRecord::ConnectionAdapters::ConnectionManagement
ActiveRecord::QueryCache
ActionDispatch::Cookies
ActionDispatch::Session::CookieStore
ActionDispatch::Flash
ActionDispatch::ParamsParser
ActionDispatch::Head
Rack::ConditionalGet
Rack::ETag
ActionDispatch::BestStandardsSupport
Application root    D:/sites/ror/buf4
Environment development
Database adapter    sqlite3
Database schema version 20121224183551

提前致谢,

4

1 回答 1

0

您的 javascript 文件是否具有扩展名 .js.erb?假设您正在使用资产管道,能够做到这一点

<%= escape_javascript( render(:partial => 'form') ).html_safe %>

在您的 javascript 文件中需要是否具有 .js.erb 扩展名

于 2013-01-05T19:43:03.230 回答