从javascript传输数据到.erb文件

3

我想知道这是否可能。我有一些JavaScript代码,根据我的Rails 2.3.17应用程序中的信息呈现页面。这段代码是继承而来的,不是我自己写的。问题在于,我正在尝试从服务器获取有关我在运行时不知道的对象的数据。基本上我正在尝试做到这一点:

var record_id = 73; 
if(<%= DataTable.find(record_id).value_of_record.nil? %>{
    ...
}else{
    ...

我希望能在运行时使用JavaScript将record_id传递给.erb选择器。这种情况是否可行?如果不行,有没有办法从JavaScript中调用信息以获取记录在.erb文件中传递的id?目前,该id存储在HTML文档中。


7
不,这是不可能的。你可以将一个Ruby变量传递给Javascript,但反过来却不能这样做。你需要使用Ajax(向服务器发送包含record_id的请求,在那里进行Ruby on Rails检查,并将答案发送回Javascript)。 - MrYoshiji
我现在正在尝试做这件事。你知道如何使用prototype.js获取查询结果吗?显然他们正在使用它,而我不知道查询字符串的正确语法。 - Michael Guantonio
嗷,我不太熟悉prototype.js... 你的应用程序中有jQuery吗?你正在使用哪个Rails版本? - MrYoshiji
我正在使用Rails 2.3.11版本。应用程序专门使用prototype.js。它有点老了。 - Michael Guantonio
这可以帮助:http://prototypejs.org/doc/latest/ajax/Ajax/Request/ - MrYoshiji
1个回答

0

正如MrYoshiji所说,您可以使用Ruby,因此可以这样做:

var record_id = <%= record_id = 5 %>; 
if(<%= DataTable.find(record_id).value_of_record.nil? %>{
    ...
}else{
    ...

在Ruby中初始化一个变量会返回该值,所以它将变成只有var record_id = 73;,并且Ruby变量现在可以被find方法访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接