1

我有一个付款表,我希望能够同时更新所有 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=>: UPDATE "payments" SET "{:order=>" = '--- - '':year, :month, :day'' - !ruby/hash :ActiveSupport::HashWithIndifferentAccess !''}(1i)'': ''2014'' !''}(2i)'': ''3'' !''}(3i)'': ''24'' '

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

4

1 回答 1

1

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

Payment.update_all(date_of_payment: params[:date_of_payment])
于 2014-02-24T12:00:59.200 回答