大家好我有一个值,我不想动态地添加到数据库中。该值由jQuery生成,并输出到 id 'invoice_total'
。
因此基于用户输入的值会发生变化。
我想在使用<p id="invoice_total"></p>
而非<%= f.text_field :total, id: 'invoice_total' %>
如何使用RoR实现这一目标?
答案 0 :(得分:1)
您可以添加隐藏字段,并在设置值p
时设置此输入值:
<%= f.hidden_field :total, id: 'invoice_total_input' %>
然后你可以这样做:
$('#invoice_total_input').val(...)
答案 1 :(得分:1)
如果您不想提交表单或使用表单字段,则应将其作为GET params
发送,即通过url
。您可以通过Ajax向GET
controller
请求
当#invoice_total
的值发生变化时,您可以这样做。
在/assets/javascripts/invoices.js
文件中
$("#invoice_total").on('change', function(){
var invoice_total = $('#invoice_total').val();
$.get( "url/to/controller's-action", function() {
alert( "success" );
});
});
然后在Controller
class MyController < ApplicationController
def index
total_invoice = params[:invoice_total]
# .....save the value to DB
end
end