一种使用数组而不是t.string的方法

时间:2015-01-21 13:27:51

标签: ruby-on-rails arrays

我有以下对象:

create_table :expenses do |t|
    t.belongs_to  :user, index: true

    t.string :ref
    t.string :days
    t.string :traject_names
    t.string :nb_kms
    t.string :parkings
    t.string :trains
    t.string :taxis
    t.string :metros
    t.string :meals
    t.string :hotels
    t.string :natures
    t.string :amounts
    t.string :o_ns
    t.string :clients
    t.timestamps
end

我想在每个中存储一个数组。我应该使用serialize吗?

这将是这样的:

@expense = Expense.create(ref: @current_date, days: {["Monday 01"], ["Tuesday 02"]})

1 个答案:

答案 0 :(得分:1)

@expense = Expense.create(ref: @current_date, days: ["Monday 01", "Tuesday 02"])

这种方式是天数,您只需要将serialize添加到模型中,它将在读/写时处理格式化数据

class Expense < ActiveRecord::Base
  serialize :days
end

它将作为字符串存储在db中,但是当您获得days的值时,您将获得Array,然后可以使用任何Array方法。