2014-02-24 36 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