如何使用Javascript注入更改ruby代码?

时间:2016-11-18 21:22:41

标签: javascript ruby ruby-on-rails-4

我想使用我的分页更改params [:offset]参数(数字1,2,3,4,5)。对于每个Number,:offset应该增加/减少10,以便我得到接下来的10个搜索结果:

"<% text_field_tag :offset, params[:offset] || 0 %>"

要做到这一点,我写了这个Javascript代码:

search.js

var zero = 0;
var offset = "<% text_field_tag :offset, params[:offset] || " + zero + " %>";

document.getElementById("skip").innerHTML = offset;

function changeoffset1() {
    var a = document.getElementById('first').text;

    var b = parseInt(a);

    zero = (b - 1) * 10;

    var offset = "\<\% text_field_tag :offset, params[:offset] || " + zero +        " %>";

    document.getElementById("skip").innerHTML = offset;

}  

function changeoffset2() {  
   var c = document.getElementById('second').text;

   var d = parseInt(c);

   zero = (d - 1) * 10;  

   var offset = "\<\% text_field_tag :offset, params[:offset] || " + zero +   " %>";

   document.getElementById("skip").innerHTML = offset;

}
....

在视图中我添加了这个div:

"<div id="skip"><br> </div>"

而不是在代码中使用我的params哈希,文本显示在我的页面上,就好像注入的&lt;%ruby code%&gt;不再是ruby代码,只是文本。

如何通过单击分页链接注入一些更改的ruby代码?

或者我怎么能改变我的params值,否则点击分页链接?

1 个答案:

答案 0 :(得分:3)

如果我理解你的问题,你就不能。

Ruby代码在服务器上执行。

页面JavaScript由客户端(webbrowser)执行。

随着JavaScript执行,它已经被Ruby解释器解析了。