在 javascript 函数中设置 Rails 变量有什么问题吗?我无法在谷歌上找到明确的答案,只是想确保没有我不知道的问题或缺陷。我实际上对它的工作原理感到困惑 - 如果在客户端执行 javascript,我不会假设 Rails 会在 View 呈现后响应 View 中的变量变化..?
(示例)我有多个函数调用同一个表单,我需要知道哪个函数调用表单来执行 Controller 方法中的特定任务(在这种情况下 session 是 cookie,但我也尝试了本地 Rails变量,它也可以工作)。
<script type="text/javascript">
$('.open_new_item_form' ).click(function(){
alert('<%= session[:item_form_type]%>');
<% session[:item_form_type] = "from_new_item_click" %>
alert('<%= session[:item_form_type]%>');
var url = $(this).attr("href");
$.ajax({
etc...
警报似乎表明它运行良好。它将以当前值和设置后的新“from_new_item”值发出警报。
谢谢 - 只是确保
最佳答案
您的erb
文件在服务器上被完全解释;此行将执行 作为呈现 javascript 的一部分,而不是在客户端上执行 javascript 时执行:
<% session[:item_form_type] = "from_new_item_click" %>
如果您将这行代码放置在评估结果为 false
的 javascript if
block 中,您的服务器端变量仍将被更改:
if(0){<% session[:item_form_type] = "from_new_item_click" %>;}
(原谅我的 pidgin -javascript,这不是我说的语言。)
关于ruby-on-rails - Rails - 可以在 javascript 函数中设置 Rails 变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319808/