如何使用Rails从数字字段进行jQuery ajax调用

我正在做一个fixeddeposit项目,我有三个模型:

1) fixeddeposit 2) interestrate 3) interestsetup

当我打开fixeddeposit ,我必须从number_field输入天数(365/730/1095/1460和1825)。 然后在另一个文本框中,我想根据我键入的数字(365/730/1095/1460和1825)更新rate_of_interest

Rate_of_interest应取自利率表字段中的费率。 请参阅下面我感兴趣的表格的屏幕截图。

兴趣表

在此处输入图像描述在此处输入图像描述

例:

如果我以固定存款forms输入数字365(即number_field)。 它使用AJAX函数从兴趣表中自动选择9.5%的费率。

并且,如果客户年龄超过58,并且我以固定存款forms输入数字365。 它使用AJAX函数从兴趣表中自动选择(率9.5%+高级增量0.5%)= 10.0%。

FD的屏幕截图 在此处输入图像描述

我用谷歌搜索了一个解决方案,但结果只显示了collection_select。 我想在number_field中做同样的事情。 虽然,我是Ruby on Rails和AJAX的新手,但我正在努力解决它。

让我们通过轨道中的ajax步骤

一个。 为自定义操作创建路由,因为我们要发送数据,因此它将是发布请求

 post "/rate" => "your_controller#calculate_rate" , as: "calculate_rate" 

湾 编写一个可以收听期间输入字段的JavaScript代码。

 $(document).on("change","#id_of_periods_input",function(){ var periods = $(this).val(); var age = $("#id_of_age_input").val(); $.ajax({ type: "POST", url: "/rate", data: { periods: periods, age: age } //this will enable you to use params[:periods] and params[:age] in your controller }); }); 

这将有效但我认为如果你有某种按钮并且当用户点击它然后计算你感兴趣的利率会更好,因为如果你将使用更改事件然后让我们说你的期间值是365所以你的ajax调用将触发3次(第一次输入3然后输入6然后输入5)

如果你想使用按钮,那么你也必须使用相同的逻辑,只有这一行会改变

 $(document).on("click","#id_of_btn",function(){ // same logic }); 

C。 获取控制器中的数据并执行逻辑

 def calculate_rate @periods = params[:periods] @age = params[:age] // perform your logic here and store rates value in lets say @rate respond_to do |format| format.js{} #this will make rails look for a file named calculate_rate.js.erb in your views end end 

d。 通过在calculate_rate.js.erb中写入js 填充费率输入字段

 $("#id_of_rate_field").val(@rate); 

我看到该费率取决于Time PeriodDate of Birth 。 因此,一种方法是将事件侦听器附加到两个输入字段。 所以让我们说,dob输入字段有id = dob ,你可以编写简单的jQuery来附加一个像$(“#dob”)的监听器.change() ….

现在,在侦听器函数内,您可以根据时间段和DOB的值更新感兴趣的值。 为此,您可以在代码中编写ROI逻辑或向Rails应用程序发送ajax请求并从那里获取利率。