繁体   English   中英

如何在ruby中使用javascript中的变量?

[英]How to use variables from javascript in ruby?

在我的edit.html.erb中,我使用了一些混合了一些ruby代码的javascript:

var sel = document.getElementById("right").;
        var len = sel.options.length;
        var str = "";
        for (var i = 0; i < len; i++) 
                {
                if(sel.options[i].selected) 
                    {
                    <% RHoliday.find_or_create(holiday_id: sel.options[i].value , group_id: @group.id ) %> 
                    }
                }

        }

但我总是得到以下错误:

未定义的局部变量或方法`sel'用于#<#:0x3f90ee8>

这是因为我正试图从我的javascript访问变量。 我的问题是:有没有办法解决这个错误?

简短的回答:你不能这样做,JavaScript是客户端,Ruby是服务器端。

答案很长:

你需要在你的javascript中进行ajax调用,而不是明确地将ruby写入函数。

var sel = document.getElementById("right").;
var len = sel.options.length;
var str = "";
for (var i = 0; i < len; i++) 
{
  if(sel.options[i].selected) 
  {
    $.ajax("/holiday/create", {holiday_id: sel.options[i].value, group_id: @group.id}).done(function(data){
      //do something with data here
    });
  }
}

然后在您的假日控制器中设置您的路线:

def create
  render json: RHoliday.find_or_create(holiday_id: params[:holiday_id].to_s, group_id: params[:group_id].to_s)    
end

不建议您使用这个确切的代码,但它为您提供了一个起点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM