【问题标题】:Using update_all to update a date attribute使用 update_all 更新日期属性
【发布时间】:2014-03-25 23:20:47
【问题描述】:

我有一个付款表,我希望能够同时更新所有 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 "payments" SET "{:order=>" = '--- - '':year, :month, :day'' - !ruby/hash:ActiveSupport::HashWithIndifferentAccess ! ''}(1i)'': ''2014''! ''}(2i)'': ''3'' ! ''}(3i)'': ''24'' '

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

【问题讨论】:

  • 您能提供您的payments 架构吗?

标签: ruby-on-rails ruby-on-rails-4 sqlite update-all


【解决方案1】:

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

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

【讨论】:

  • 是的,效果很好。谢谢!我认为这可能是这样的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-03
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 2011-08-15
相关资源
最近更新 更多