我一直在寻找无处不在,并尝试每一个建议,我可以找到这个,但它仍然无法正常工作。基本上,我试图把所输入的内容分解成单独的单词,然后让每个单词成为一个链接。我试图从数据库中获取一个值并将其传递给javascript,以便我可以在JavaScript中为该值赋予一个变量。下面是代码:从控制器分配一个JavaScript变量的ruby变量
控制器:
def show
@icelandic_reader = IcelandicReader.find(params[:id])
@icelandic_reader_json = @icelandic_reader.text.to_json;
respond_to do |format|
format.html # show.html.erb
format.json { render json: @icelandic_reader }
end
end
在.js.erb文件:
window.onload = function() {
var myText = <%= @icelandic_reader_json %>;
console.log("test1");
var words = myText.split(" ");
console.log("test2");
var numWords = words.length;
var textToInsert;
for (var i = 0; i < numWords; i++) {
console.log("inside for loop");
textToInsert += "<a href=#>" + words[i] + "</a>" + " ";
}
document.getElementById('icelandic_reader_text').innerHTML = textToInsert;
}
我没有得到任何错误,但我没有看到任何的我的测试控制台日志出现。我已经尝试了各种方法,我已经找到了如何分配ruby变量,但它不会工作。我有红宝石3.2.6。谢谢!
在'var numWords = lines.length'你在哪里设置'lines' – 244an
谢谢,我修正了这个问题,我在发布前重命名了一些东西,并错过了它。但是,它并没有解决问题。我甚至觉得它没有通过第一行,因为我从来没有在控制台中看到“test1”。 – nielsene54
你必须用'''包围文本? (如果是文本) – 244an