Twitterのクローンみたいなものを作成中なのですが、ユーザー情報が表示されません。
app > views > users >show.html.erb <div class="main"> <div class="inner"> <div class="user__wrapper"> <h2 class="page-heading"> <%= "#{@user.name}さんの情報"%> </h2> <table class="table"> <tbody> <tr> <th class="table__col1">名前</th> <td class="table__col2"><%= @user.name %></td> </tr> <tr> <th class="table__col1">プロフィール</th> <td class="table__col2"><%= @user.profile %></td> </tr> <tr> <th class="table__col1">所属</th> <td class="table__col2"><%= @user.occupation %></td> </tr> <tr> <th class="table__col1">役職</th> <td class="table__col2"><%= @user.position %></td> </tr> </tbody> </table> <h2 class="page-heading"> <%= "#{@user.name}さんのプロトタイプ"%> </h2> <div class="user__card"> <%# 部分テンプレートでそのユーザーが投稿したプロトタイプ投稿一覧を表示する %> <%= render partial: 'prototypes/prototype', collection: @prototypes %> </div> </div> </div> </div> ``` ``` app > model > user.rb class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable #nameカラムが空の状態ではDBに保存できないということ validates :name, presence: true validates :profile, presence: true validates :occupation, presence: true validates :position, presence: true has_many :prototypes has_many :comments end ```
app > controller > user_controller.rb
class UsersController < ApplicationController
end
def show
@user = User.find(params[:id])
@prototypes = current_user.prototypes
end
いまいち仕組みが掴めていません。 ご教授宜しくお願いします @user.name〜に変更後 また別のエラーが出てきました。 NameError in Prototypes#index Showing /Users/taigasoma/projects/protospace-30528/app/views/prototypes/_prototype.html.erb where line #2 raised: uninitialized constant Prototype::Image
app > views > prototypes > _prototype.html.erb
<div class="card"> #下記がマークされたエラー文です。 <%= link_to image_tag(prototype.image, class: :card__img ) %> <div class="card__body"> <%= link_to prototype.title, prototype_path(prototype.id), method: :get, class: :card__title%> <p class="card__summary"> <%= prototype.catch_copy %> </p> <%= link_to "by #{prototype.user.name}", "/users/#{prototype.user.id}", class: :card__user %> </div> </div> ```app > views > prototype > _prototype.html.erb <div class="card"> <%= link_to image_tag(prototype.image, class: :card__img ), prototype_path(prototype.id), method: :get %> <div class="card__body"> <%= link_to prototype.title, prototype_path(prototype.id), method: :get, class: :card__title%> <p class="card__summary"> <%= prototype.catch_copy %> </p> <%= link_to "by #{prototype.user.name}", "/users/#{prototype.user.id}", class: :card__user %> </div> </div> 二行目の <%= link_to image_tag(prototype.image, class: :card__img ), prototype_path(prototype.id), method: :get %> にてNameErrorが発生しました。 index.htmlは <main class="main"> <div class="inner"> <%# ログインしているときは以下を表示する %> <% if user_signed_in? %> <div class="greeting"> こんにちは、 <%= link_to "#{current_user.name}さん", "/users/#{current_user.id}", class: :greeting__link %> </div> <% end %> <%# // ログインしているときは上記を表示する %> <div class="card__wrapper"> <%# 投稿機能実装後、部分テンプレートでプロトタイプ投稿一覧を表示する %> <div class="prototypes"> <%= render partial: 'prototypes/prototype', collection: @prototypes %> </div> </div> </div> </main> コントローラーは、 class PrototypesController < ApplicationController before_action :authenticate_user!, except: [:index, :show] def index @prototypes = Prototype.all end def new @prototype = Prototype.new end def create @prototype = Prototype.new(prototype_params) if @prototype.save redirect_to root_path else render :new end end def show @prototype = Prototype.find(params[:id]) @comment = Comment.new @comments = @prototype.comments.includes(:user) end def edit @prototype =Prototype.find(params[:id]) end def update prototype = Prototype.find(params[:id]) if prototype.update(prototype_params) redirect_to prototype_path else render :edit end end def destroy prototype = Prototype.find(params[:id]) prototype.destroy redirect_to root_path end private def prototype_params params.require(:prototype).permit(:title, :catch_copy, :concept, :image).merge(user_id: current_user.id) end end routes.rbは Rails.application.routes.draw do devise_for :users root to: 'prototypes#index' resources :prototypes do resources :comments, only: :create end resources :users, only: :show end modelsは class Prototype < ApplicationRecord has_one_attached :image has_many :comments has_many :commnets, dependent: :destroy has_many :image, dependent: :destroy validates :title, presence: true validates :catch_copy, presence: true validates :concept, presence: true validates :image, presence: true belongs_to :user end
こちらが詳細のコードになります。
宜しくお願いいたします。