Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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
Ruby on rails 如何在RubyonRails中使用Ajax更新两个参数?_Ruby On Rails_Ruby_Ruby On Rails 3_Jquery_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 如何在RubyonRails中使用Ajax更新两个参数?

Ruby on rails 如何在RubyonRails中使用Ajax更新两个参数?,ruby-on-rails,ruby,ruby-on-rails-3,jquery,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Jquery,Ruby On Rails 3.2,我正在尝试使用Ajax更新此帮助器函数: def radio_buttons_collection(types, invoice_type) types_html = types.map do |type| content_tag :span, :class => "radio_option" do radio_button_tag("project[invoice_type]", type, type == invoice_type) + type end

我正在尝试使用Ajax更新此帮助器函数:

def radio_buttons_collection(types, invoice_type)
  types_html = types.map do |type|
    content_tag :span, :class => "radio_option" do
      radio_button_tag("project[invoice_type]", type, type == invoice_type) + type
    end
  end
  safe_join(types_html)
end
但是,我在获取这两个参数时遇到了困难

# get_invoice_types.js.erb:

$('#project_invoice_type').html("<%= escape_javascript(radio_buttons_collection(@types, @invoice_type)) %>");

有人能帮忙吗

现在,只有
@types
参数被正确传递

谢谢你的帮助

项目上#获取发票类型
您正试图获取项目:

project = Project.find(params[:id])
但是在ajax调用中,您没有传递
id
,您只传递
person\u id

您还应该在ajax调用中传递
id
param

添加一个id为
project\u id
且值为project.id的隐藏\u字段

然后

projects#get_invoice_types
上,您试图使用以下内容获取项目:

project = Project.find(params[:id])
但是在ajax调用中,您没有传递
id
,您只传递
person\u id

您还应该在ajax调用中传递
id
param

添加一个id为
project\u id
且值为project.id的隐藏\u字段

然后


帮助Anezio Campos:

$("#project_person_id").change(function() {

    var person_id = $(this).val();
    var project_id = $("#project_id").val();
    $.ajax({
        url: '/projects/get_invoice_types',
        data: {person_id: person_id, id: project_id},
        dataType: 'script'
    })
});

如果有用的话,试试看。

帮助Anezio Campos:

$("#project_person_id").change(function() {

    var person_id = $(this).val();
    var project_id = $("#project_id").val();
    $.ajax({
        url: '/projects/get_invoice_types',
        data: {person_id: person_id, id: project_id},
        dataType: 'script'
    })
});

试试看,如果行得通的话。

嗯,似乎不行。我在控制台中遇到了一个以前从未见过的奇怪错误:
找不到id=[object object]
app/controllers/projects\u controller.rb:58:get\u invoice\u types中的第58行是我的例子:
Project=Project.find(params[:id])
在ajax中尝试$(“\Project\u id”).value()。我的错误,奇怪。现在我明白了:
application.js:105TypeError:“undefined”不是一个函数(计算“$”(“#project_id”).value())
OK,多亏了你和rony36,最终实现了这一点。干杯嗯,好像不管用。我在控制台中遇到了一个以前从未见过的奇怪错误:
找不到id=[object object]
app/controllers/projects\u controller.rb:58:get\u invoice\u types中的第58行是我的例子:
Project=Project.find(params[:id])
在ajax中尝试$(“\Project\u id”).value()。我的错误,奇怪。现在我明白了:
application.js:105TypeError:“undefined”不是一个函数(计算“$”(“#project_id”).value())
OK,多亏了你和rony36,最终实现了这一点。干杯谢谢,但我得到了以下信息:
TypeError:“undefined”不是函数(计算“this.val()”)
与我使用的
.value()
相同。您是否尝试过
var person_id=$(“#project_person_id”).val()?实际上,它将为我
$(this.val()TypeError:“undefined”不是函数(计算“this.val()”)
与我使用的
.value()
相同。你试过
var person\u id=$(“#project\u person\u id”).val()吗?实际上,它将为我
$(this.val()$("#project_person_id").change(function() {

    var person_id = $(this).val();
    var project_id = $("#project_id").val();
    $.ajax({
        url: '/projects/get_invoice_types',
        data: {person_id: person_id, id: project_id},
        dataType: 'script'
    })
});