我有一个付款表,我希望能够同时更新所有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'''
我必须承认我对这个错误究竟是什么感到有点困惑。我的控制器中的代码是否不正确?或者表格有问题吗?正如我所说,我还没有完全理解形式,所以任何帮助都会非常感激。
答案 0 :(得分:1)
检查update_all的语法。我认为你需要这样的东西:
Payment.update_all(date_of_payment: params[:date_of_payment])