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

如何在ruby中使用javascript中的变量?,javascript,ruby-on-rails,variables,Javascript,Ruby On Rails,Variables,在我的edit.html.erb中,我使用了一些javascript和一些ruby代码: var sel = document.getElementById("right").; var len = sel.options.length; var str = ""; for (var i = 0; i < len; i++) { if(sel.options[i].select

在我的edit.html.erb中,我使用了一些javascript和一些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) 
                    {
                    <% RHoliday.find_or_create(holiday_id: sel.options[i].value , group_id: @group.id ) %> 
                    }
                }

        }
var sel=document.getElementById(“右”)。;
var len=选择选项长度;
var str=“”;
对于(变量i=0;i
但我总是会遇到以下错误:

未定义的局部变量或#

这是因为我试图从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
    });
  }
}

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

您在哪里为ID为“正确”的文档赋值?
def create
  render json: RHoliday.find_or_create(holiday_id: params[:holiday_id].to_s, group_id: params[:group_id].to_s)    
end