所以我在Rails应用程序中发出Ajax请求,当我想恢复变量时,我遇到了一个小问题。
假设我传递给Ajax请求的数据看起来像这样
var dataAll = ({dataForKey: dataItemID});
然后说两个秒变量就像这样恢复了
var dataForKey = '<%= feed_item.class.to_s.foreign_key %>';
var dataItemID = '<%= feed_item.id %>';
想象一下,feed_item.class.to_s.foreign_key
会返回photo
。因此,dataForKey
值为'photo'
。
但是,我需要dataForKey
为photo
而不是'photo'
,我不能说
var dataForKey = <%= feed_item.class.to_s.foreign_key %>;
因为jQuery会查找名为photo
...
那么,让我们总结一下:如何从dataForKey
删除引用?
答案 0 :(得分:2)
不是将密钥的名称保存到变量中,而是直接输出:
var dataItemID = '<%= feed_item.id %>';
var dataAll = ({<%= feed_item.class.to_s.foreign_key %>: dataItemID});
或者,创建对象并单独设置值:
var dataForKey = '<%= feed_item.class.to_s.foreign_key %>';
var dataItemID = '<%= feed_item.id %>';
var dataAll = {};
dataAll[dataForKey] = dataItemID;
答案 1 :(得分:0)
您可以尝试使用eval
:
var dataForKey = eval('<%= feed_item.class.to_s.foreign_key %>');
答案 2 :(得分:0)
dataForKey = dataForKey.replace("'", "");