Использование 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=>: UPDATE "платежи" SET "{:order=>" = '--- - '': год,: месяц,: день'' -! Ruby/hash:ActiveSupport::HashWithIndifferentAccess! ''}(1i)'': ''2014''! ''}(2i)'': ''3''! ''}(3i)'': ''24'' '

Я должен признаться, что я немного запутался в том, что именно эта ошибка. Код в моем контроллере неверен? Или что-то не так с формой? Как я уже сказал, я еще не полностью понимаю формы, поэтому любая помощь будет принята с благодарностью.

1 ответ

Решение

Проверьте синтаксис update_all. Я думаю, что вам нужно что-то вроде:

Payment.update_all(date_of_payment: params[:date_of_payment])
Другие вопросы по тегам