1

exchange_rate在我的表单中,当用户更改currency选择框时,我试图更新该字段。

应用程序.js

$("#invoice_currency").change(function() {
    $.ajax({
        url: '/invoices/get_exchange_rate',
        dataType: 'script'
    })
});

invoices_controller.rb

def get_exchange_rate
  from = current_user.base_currency
  to = params[:currency]
  @exchange_rate = GoogleCurrency.get_exchange_rate(from, to)
end

get_exchange_rate.js.erb

$('#invoice_exchange_rate').val('<%= @exchange_rate %>');

google_currency.rb

module GoogleCurrency

  def self.get_exchange_rate(from, to)

    ....

  end

end

这还不起作用,因为由于某种原因,params[:currency]无法通过 Ajax 动态评估。

谁能告诉我它是怎么做的?

谢谢你的帮助。

4

1 回答 1

2

您的 AJAX 调用没有传入任何数据,因此params[:currency]在控制器中将为零。

您应该向 AJAX 调用添加一些数据,例如:

$("#invoice_currency").change(function() {
  $.ajax({
      url: '/invoices/get_exchange_rate',
      data: { currency: $(this).val() },
      dataType: 'script'
  })
});
于 2013-09-14T12:56:35.573 回答