【未経験プログラミング】twitterクローン【xx日】

https://techacademy.s3.amazonaws.com/bootcamp/laravel/twitter-clone/nvsn.png

https://techacademy.s3.amazonaws.com/bootcamp/laravel/twitter-clone/nvsn0.png

Userを表す user_id とフォローされる側のUserを表す follow_id のカラムを持たせます。

→micropost_ID = follow_id

rails g model Like user:references micropost:references

 

has_many :reverses_of_like, class_name: 'Like', foreign_key: 'micropost_id'
has_many :microposts, through: :reverses_of_like, source: :user

いらないとの事。

UserとUserの双方向で関連付けはいらない

そのため、双方向を意識するなら、 `models/microport.rb` に2行の関連付けが必要です。
ただ課題の要件上は、Microportモデル側の関連付けは使いません。
そこで今回は `models/user.rb` に適切な2行の関連付けがあれば良いですね。

 

エラー

undefined local variable or method `user' for 

user idから current_user.Idに2箇所変更

<% if current_user.microposting?(current_user) %>

<%= hidden_field_tag :micropost_id, current_user.id %>

 

gyazo.com

NoMethodError in Users#likes

undefined method 'name' for nil:Nilclass

→ネームメソッドない

 

実装されていなくても表示される。TOP画面等

Users/likes.html.erb

users_controller

定義なしの為nilで帰ってきた。

 

def likes

@user = User.find(params[:id])
@microposts = @user.microposts.page(params[:page])