使用update_all更新日期属性

时间:2014-02-24 10:38:53

标签: ruby-on-rails ruby-on-rails-4 sqlite update-all

我有一个付款表,我希望能够同时更新所有date_of_payment字段,即具有相同的日期。

在我看来,我有以下

<%= form_tag update_date_payments_path, :class => 'form_for_all', method: :put do %>
    <%= date_select(:date_of_payment, :order => [:year, :month, :day] ) %>
<div class="actions">
  <%= submit_tag 'Save' %>
</div>
<% end %>

在我的控制器中,我有:

  def update_date
    Payment.update_all(params[:date_of_payment])
  end

我得到的错误是:

  

SQLite3 :: SQLException:没有这样的列:{:order =&gt;:UPDATE“payment”   SET“{:order =&gt;” ='--- - '':年,月,:天'' -   !ruby / hash:ActiveSupport :: HashWithIndifferentAccess! ''}(1i)中 '':   ''2014''! ''}(2i)'':''3''! ''}(3i)'':''24'''

我必须承认我对这个错误究竟是什么感到有点困惑。我的控制器中的代码是否不正确?或者表格有问题吗?正如我所说,我还没有完全理解形式,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

检查update_all的语法。我认为你需要这样的东西:

Payment.update_all(date_of_payment: params[:date_of_payment])