Rails在模型中迁移数组并不起作用

时间:2016-07-16 22:52:37

标签: ruby-on-rails arrays ruby rails-migrations

我正在尝试创建一个包含一些数组的模型。通过此命令创建迁移文件后:

rails g model post poster_first_name:string poster_first_name:string email:string poster_id:integer poster_profile_pic:string message:string post_type:string comments:text

创建了迁移文件,我将迁移文件修改为如下所示(尝试生成post_typecomments数组):

class CreatePosts < ActiveRecord::Migration
  def change
    create_table :posts do |t|
      t.integer :poster_id,        null: false, default: 0
      t.string :poster_first_name,              default: ""
      t.string :poster_last_name,               default: ""
      t.string :poster_profile_pic,             default: ""
      t.string :message,           null: false, default: ""
      t.string :post_type,         array: true, default: []
      t.text :comments,            array: true, default: []

      t.timestamps null: false
    end
  end
end

此迁移文件看起来正确无误。我运行rake db:migrate

之后

这是我的架构的样子:

 create_table "posts", force: :cascade do |t|
   t.integer  "poster_id",          default: 0,          null: false
   t.string   "poster_first_name",  default: ""
   t.string   "poster_last_name",   default: ""
   t.string   "poster_profile_pic", default: ""
   t.string   "message",            default: "",         null: false
   t.string   "post_type",          default: "--- []\n"
   t.text     "comments",           default: "--- []\n"
   t.datetime "created_at",                              null: false
   t.datetime "updated_at",                              null: false
 end

所以基本上rails并不了解这些字段是数组。我尝试了很多不同的东西。但没有运气。我将不胜感激任何帮助。 (这可能是一个菜鸟问题)

1 个答案:

答案 0 :(得分:0)

请检查此答案:Ruby on Rails: Submitting an array in a form

所以你可以理解如何使用它。