如何在没有f.text_field Rails的情况下将值传递给数据库

时间:2016-08-29 15:16:53

标签: html ruby-on-rails ruby ruby-on-rails-4

大家好我有一个值,我不想动态地添加到数据库中。该值由jQuery生成,并输出到 id 'invoice_total' 。 因此基于用户输入的值会发生变化。 我想在使用<p id="invoice_total"></p>而非<%= f.text_field :total, id: 'invoice_total' %>

之类的内容时将该值保存到数据库中

如何使用RoR实现这一目标?

2 个答案:

答案 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