我想使用我的分頁(編號1,2,3,4,5)更改params [:offset]參數。每個編號的:偏移應該由10增加/減少,使我得到下一個10的搜索結果:如何使用Javascript注入更改ruby代碼?
"<% 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哈希w ^在代碼中,文本顯示在我的頁面上,就像注入的<%ruby代碼%>不再是ruby代碼,而只是文本而已。
我怎麼能注入是通過點擊一個鏈接分頁改變了一些Ruby代碼?
要不我怎麼會改變我的PARAMS值,否則點擊分頁鏈接?
您需要修復格式。你的問題現在很難理解。 – TankorSmash
Google Ruby Metaprogramming – MikeJRamsey56
Ruby首先運行,然後是* JavaScript,Ruby沒有第三次運行。解決這個問題的方法是根據操作順序弄清楚你正在嘗試做什麼。 'text_field_tag'生成一個文字的HTML塊。如何在JavaScript中有用我不知道。如果您想擁有客戶端模板,請嘗試使用類似[Handlebars](http://handlebarsjs.com)的內容。 – tadman