【问题标题】:How to fetch a data using ajax in rails如何在rails中使用ajax获取数据
【发布时间】:2018-10-12 07:05:57
【问题描述】:

我想使用带有导轨的Ajax 在文本框中显示country currency code

我在下拉列表中显示了所有国家/地区,如下所示:

如果选择国家 India,则在价格文本框中获取国家/地区货币符号。

我参考了一些他们说使用Ajax 的网站,但我不知道如何在rails 中使用ajax

这是尝试过的代码:

<script type="text/javascript">
  $("#manageproject_location").change(function() {
        var country = $('select#manageproject_location :selected').val();
        $.ajax({
          url: 'my-controller-name/function-name',
          data: { country : country },
          dataType: json,
          type: 'POST',
          success: function(result)
          {
            $('manageproject_symbol').val(); // here append courrency sybmbol
          }
        });
  });
</script>

控制器:

class ManageprojectsController < ApplicationController
    def new
        @manageproject=Manageproject.new
        @all=Location.all
    end
end

这是数据库

注意:我不知道如何在 rails 中使用 ajax。

提前谢谢....!

【问题讨论】:

  • 你定义了受人尊敬的路线和controller#action吗?
  • @Pavan 不,我没提那个..?

标签: ruby-on-rails ajax


【解决方案1】:

您需要定义一个route,它将作为URL 将数据发送到其受尊敬的controller#action。在routes.rb添加

#routes.rb
post '/fetch_currency_symbol', to: "locations#fetch_currency_symbol", as: "fetch_currency_symbol"

现在在ajax 中提及url 就像这样

url: '/fetch_currency_symbol',

稍后,在locations_controller 中定义将响应json 格式的操作,获取货币符号并发送回响应。

#locations_controller.rb
respond_to :json, :html
def fetch_currency_symbol
  @location = Location.find(params[:country])
  @currency_symbol = @location.currency
  respond_with @currency_symbol
end

最后在success 调用中,像这样将result 附加到文本字段中

$('#manageproject_symbol').val(result);

【讨论】:

  • 我收到类似 undefined method respond_to' 的错误,用于 ManageprojectsController:Class 你的意思是? respond_to?`我想在哪里粘贴respond_to :json, :html
  • @giridharan 您使用的是哪个 Rails 版本?
  • rails 5.2.1 ruby​​-2.3.3
  • @giridharan 你在routes.rb中定义了路由吗?
猜你喜欢
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多