Использование 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])