【问题标题】:How to update field through Ajax in Ruby on Rails form?如何在 Ruby on Rails 表单中通过 Ajax 更新字段?
【发布时间】:2013-09-14 12:53:11
【问题描述】:

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

application.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 动态评估。

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

感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby ajax ruby-on-rails-3 jquery


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,这行得通,非常感谢!我有一种预感,但不知道确切的语法。
    猜你喜欢
    • 2013-05-15
    • 2011-05-18
    • 2011-04-28
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多