【未経験プログラミング】twitterお気に入り実装【42日-2】

①中間テーブルを作る。

$ rails g model Like user:references micropost:references

 

user_idとtweet_idで重複し保存しないように

t.index [:user_id, :micropost_id], unique: true

 

.自動生成された

app/models/relationship.rbを変更

class Favorite < ApplicationRecord
belongs_to :user
belongs_to :tweet,class_name: 'User'

validates :user_id, presence: true
validates :micropost_id, presence: true

end

 

migrate

  • t.references :user, foreign_key: true
    • 実際のデータベース上では、user_idカラムとして存在しています
  • t.references :micropost, foreign_key: true
    • 実際のデータベース上では、micropost_idカラムとして存在していま

class CreateLikes < ActiveRecord::Migration[5.0]
def change
create_table :likes do |t|
t.references :user, foreign_key: true
t.references :micropost, foreign_key: true

t.timestamps
end