如何将变量值从javascript传递到rails
我是rails的新手,请帮帮我 这是我的javascript,我希望如何将变量值从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()
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