Ruby - Rails - 将文本传递给 javascript

标签 ruby ruby-on-rails-3

为什么这不是将文本传递给 javascript/jquery。? @i[:error] 中肯定有一个字符串,我可以在控制台上打印它。

js.erb 文件 -

<% if @i[:error] != "" %>
<% puts "--> " + @i[:error]  %>
#--> error
#Validation error(s):
#-  Item Is not defined or blank. # that's the error string in @i[:error]

$(function() {
$("#error_message").attr("class", "message_error");
$('#error').text("<%= @i[:error]%>"); #Not working for @i[:error]
#$('#error').text("<%= "#{@i[:error]}"%>");#Not working for @i[:error]

#$('#error').text("Test"); #This is working
#$('#error').text("<%= "?????"%>"); #This is working
});
<% else %>
........#fine here
<% end %>

最佳答案

是的,可能是因为换行。您可以使用 escape_javascript 修复它.

Escapes carriage returns and single and double quotes for JavaScript segments.

所以:

$('#error').text("<%= escape_javascript(@i[:error]) %>");

关于Ruby - Rails - 将文本传递给 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571630/

相关文章:

ruby-on-rails-3 - 我可以在 Rails 控制台中定义别名吗

ruby-on-rails - 更改 Rails 3 开发的基本 URL

ruby-on-rails - rails 应用文件夹目录结构

ruby-on-rails - rest_in_place 在 .each for 循环中选择

ruby - 在 Rails 中验证加拿大邮政编码的好方法是什么?

ruby - Scala Monkey 补丁与 Ruby 的比较

ruby-on-rails - Rails 请求参数中出现的附加属性

ruby-on-rails - 尝试更新数据库值时,rails update_attributes 返回 false

mysql - Rails 4.2 连接到旧的遗留 Mysql 数据库 - 错误

ruby - Rails 委托(delegate)方法如何工作?