2014-02-24 114 views
1

我有一个付款表,我希望能够同时更新所有的date_of_payment字段,即具有相同的日期。使用update_all更新日期属性

在我看来,我有以下

<%= 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'''

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

+0

你能提供你的'付款'模式吗? – xlembouras

回答

1

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

Payment.update_all(date_of_payment: params[:date_of_payment]) 
+0

是的,这工作完美。谢谢!我认为这可能是沿着这些线:) – SoSimple