メモ(Rails道場レッスン IV)
rubyの書き方ミス
論外ですな・・。
#没 def user{ return User.find_by(id: self.user_id) }
↓
#正解 def user return User.find_by(id: self.user_id) end
バリデーションのカンマ忘れ
#没 validates :user_id {presence: true}
↓
#正解 validates :user_id, {presence: true}
その人がいいねした投稿の一覧
#没 def likes @user = User.find_by(id: params[:id]) @likes=Like.where(user_id: @user.id) @posts=Post.where(id: @likes.post_id) end
#没 <% @posts.each do |post| %> <div class="posts-index-item"> <div class="post-left"> <img src="<%= "/user_images/#{post.user.image_name}" %>"> </div> <div class="post-right"> <div class="post-user-name"> <%= link_to( "#{post.user.name}", "/users/#{post.user.id}" ) %> </div> <%= link_to(post.content, "/posts/#{post.id}") %> </div> </div> <% end %>
↓
#正解 def likes @user = User.find_by(id: params[:id]) @likes=Like.where(user_id: @user.id) end
#正解 <% @likes.each do |like| %> <% post=Post.find_by(id:like.post_id) %> <div class="posts-index-item"> <div class="post-left"> <img src="<%= "/user_images/#{post.user.image_name}" %>"> </div> <div class="post-right"> <div class="post-user-name"> <%= link_to( "#{post.user.name}", "/users/#{post.user.id}" ) %> </div> <%= link_to(post.content, "/posts/#{post.id}") %> </div> </div> <% end %>
has_secure_passwordの設定の仕方
演習ではこれで行けた気がするけど、なぜかハッシュ化ができなかったというか、コンソールでパスワードを設定するとエラーになった。謎や
#没 class User < ApplicationRecord validates :name, {presence: true} validates :email, {presence: true, uniqueness: true} def posts return Post.where(user_id: self.id) end def has_secure_password end end
↓
#正解 class User < ApplicationRecord has_secure_password validates :name, {presence: true} validates :email, {presence: true, uniqueness: true} def posts return Post.where(user_id: self.id) end end