Ruby on rails 如何编辑具有未知键的序列化数组

Ruby on rails 如何编辑具有未知键的序列化数组,ruby-on-rails,arrays,serialization,Ruby On Rails,Arrays,Serialization,我有以下带有序列化变量的模型: 创建_expenses.rb 但它不起作用。有什么建议吗?找到了解决方法,但不确定是否对此进行了优化 对于每个数组,使用输入而不是f.text\u字段: <input type="number" name="nb_kms[]" value="<%= @nb_kms[i] %>"> 我目前正在为每个数组做一个循环。可能有一种更干净的方法来更新我的数组,但我不知道在给定的索引下应该如何更新哪个数组 最后,由于我允许用户编辑show View页

我有以下带有序列化变量的模型:

创建_expenses.rb


但它不起作用。有什么建议吗?

找到了解决方法,但不确定是否对此进行了优化

对于每个数组,使用输入而不是f.text\u字段:

<input type="number" name="nb_kms[]" value="<%= @nb_kms[i] %>">
我目前正在为每个数组做一个循环。可能有一种更干净的方法来更新我的数组,但我不知道在给定的索引下应该如何更新哪个数组

最后,由于我允许用户编辑show View页面中的数据,因此我必须在routes.rb文件中添加这一行:

我对其他解决办法持开放态度

class Expense < ActiveRecord::Base
  belongs_to :user

  serialize :traject_names
  serialize :nb_kms
  serialize :parkings
  serialize :trains
  serialize :taxis
  serialize :metros
  serialize :meals
  serialize :hotels
  serialize :natures
  serialize :amounts
  serialize :o_ns
  serialize :clients
end
<%= f.fields_for :nb_kms, @expense.nb_kms[i] do |answer_fields| %>
    <%= answer_fields.text_field "", :value => @expense.nb_kms[i] %>
<% end %>
<input type="number" name="nb_kms[]" value="<%= @nb_kms[i] %>">
params['nb_kms'].each_with_index do |nb_km, i|
      @expense.nb_kms[i] = nb_km
end
if @expense.update(expense_params)
      ...
patch '/expenses/:year/:month/'  => 'expenses#update'