在轨道

时间:2017-06-12 19:04:35

标签: ruby-on-rails ruby

我对rails非常陌生,需要帮助播种我的桌子。我有两个表“轨道”和“流派”,他们的迁移文件看起来像这样

class CreateGenre < ActiveRecord::Migration[5.1]
  def change
    create_table :genres do |t|
      t.string :rock
      t.string :rap
      t.string :jazz
      t.string :alternative
      t.references :track, foreign_key: true

      t.timestamps
    end
  end
end

class CreateTracks < ActiveRecord::Migration[5.1]
  def change
    create_table :tracks do |t|
      t.string :trackname
      t.string :artist

      t.timestamps
    end
  end
end

以下是模型

class Track < ApplicationRecord
  has_one :genre
end
class Genre < ApplicationRecord
  belongs_to :Track
end

现在,当我转到psql并检查我的track表时,它有两列tracknameartist。我也希望为曲目添加类型,但我不知道该怎么做?

我做了这个

data = [
  {
trackname: "hell yes",
artist: "beck"
    },
   {
trackname: "jailhouse rock",
artist: "elvis presley"
    }
]

当我这样做时,我在弄清楚如何播种这种类型时遇到了问题。我会把它放在哪里?请帮忙。

2 个答案:

答案 0 :(得分:1)

根据我的理解,我会尝试以下内容:

Track.create!(
  trackname: "hell yes",
  artist: "beck",
  genre_attributes: {
    rock: "true"
  }
)

答案 1 :(得分:0)

您希望通过运行迁移将genre添加到Tracks表中。

运行:

rails generate migration add_column_to_tracks genre:string

然后运行rake db:migrate

那应该将新字段添加到数据库中。