ruby-on-rails - Rails - 可以在 javascript 函数中设置 Rails 变量吗?

标签 ruby-on-rails

在 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/

相关文章:

ruby-on-rails - Rails + Mongoid - 不要在 JSON 中返回 nil 值

ruby-on-rails - 意外标记附近的语法错误 `('

ruby-on-rails - Sunspot solr搜索,如何一次返回所有记录?

ruby-on-rails - 如何检查对象是否属于Ruby中的数组

ruby-on-rails - ActiveRecord 添加负日期年份

ruby-on-rails - "Anonymous modules have no name to be referenced by"到底是什么意思?

ruby-on-rails - 获取 fields_for 和 accepts_nested_attributes_for 以处理 belongs_to 关系

ruby-on-rails - 在一个模型上创建多个条目 - Ruby on Rails(非嵌套)

javascript - Rails 上的 React.js 错误

mysql2 失败的包安装