Ruby on rails 如何在RubyonRails中使用Ajax更新两个参数?
我正在尝试使用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
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'
})
});