Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将变量值从javascript传递到rails_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

如何将变量值从javascript传递到rails

如何将变量值从javascript传递到rails,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我是rails的新手,请帮帮我 这是我的javascript,我希望filename值在控制器page\u控制器中传递到create\u表操作 $(document).ready(function(){ $("#prefix, #client, #myFile").change(function(){ concatenated_string = $("#prefix").val() + "_" + $("#client").val() + "_" + $("#myFile").val()

我是rails的新手,请帮帮我

这是我的javascript,我希望
filename
值在控制器
page\u控制器
中传递到
create\u表
操作

$(document).ready(function(){
$("#prefix, #client, #myFile").change(function(){
    concatenated_string = $("#prefix").val() + "_" + $("#client").val() + "_" + $("#myFile").val();
    $("#concatenated_string").val(concatenated_string);
     myvar = concatenated_string.replace(/C:\\fakepath\\/i, '');
     myvar = myvar.replace(/\..+$/, '');
     myvar = myvar.replace(/\s+/, "_");

     var filename = myvar //This variable

    $("#temp_display").text(filename)

 })
})
class PageController < ApplicationController

  # before_action :authenticate_user!
  #before_action :set_company, only: [:show, :edit, :update, :destroy]
  before_action :authenticate_user!, only: [:index]

  def home
  end


  def titlebar
  end


 def insert_table
  #redirect_to :action => "create_table"
 end 

  def create_table

            filename = params[:filename]

  end  
end
下面的文件是我的
page\u controller.rb
create\u table
操作

$(document).ready(function(){
$("#prefix, #client, #myFile").change(function(){
    concatenated_string = $("#prefix").val() + "_" + $("#client").val() + "_" + $("#myFile").val();
    $("#concatenated_string").val(concatenated_string);
     myvar = concatenated_string.replace(/C:\\fakepath\\/i, '');
     myvar = myvar.replace(/\..+$/, '');
     myvar = myvar.replace(/\s+/, "_");

     var filename = myvar //This variable

    $("#temp_display").text(filename)

 })
})
class PageController < ApplicationController

  # before_action :authenticate_user!
  #before_action :set_company, only: [:show, :edit, :update, :destroy]
  before_action :authenticate_user!, only: [:index]

  def home
  end


  def titlebar
  end


 def insert_table
  #redirect_to :action => "create_table"
 end 

  def create_table

            filename = params[:filename]

  end  
end
您可以使用如下格式的隐藏输入字段,其中可以附加文件名值,以便您可以在
创建表
操作中捕获该值

#in your form
<input type="hidden" name="filename" id="my_file_name" value="">
现在,您可以使用
params[:filename]
捕获文件名的值,我得到了解决方案

这是我的js

function myFunction()
{
    concatenated_string = $("#prefix").val() + "_" + $("#client").val()     + "_" + $("#myFile").val();
 $("#concatenated_string").val(concatenated_string);
 myvar = concatenated_string.replace(/C:\\fakepath\\/i, '');
 myvar = myvar.replace(/\..+$/, '');
 myvar = myvar.replace(/\s+/, "_");

 var filename = myvar;

$("#temp_display").text(filename);
document.getElementById("my_file_name").value = filename;  
}
我认为这是帕万所建议的

<input type="hidden" name="filename" id="my_file_name" value="">

#temp_display
指的是什么?参数:{“utf8”=>“✓", "真实性标志“=>”Cibaawkbixkisanqgnfzuehwxkyabfkxs9cbegugitk2onsjnclhjvrb0oga0remaf8zir37fyreiyacvvlwa==”,“filename”=>,“commit”=>“upload file”}@pavan filename为零,我正在获取此信息terminal@SagarRS尝试使用
console.log(文件名)检查控制台中的文件名值
  def create_table
        filename = params[:filename]
        content = params[:file].path
  end