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 に答える