投稿したものを複数ページでまとめて見たい
Q&A
Closed
解決したいこと
Ruby on Rails チュートリアルの内容を少し崩して学習しています。
13章のチュートリアルではログイン成功後は投稿機能を追加していきます。
投稿されたものはapp/views/users/show.html.erbで履歴として表示されます。
新たにリスト(list)という投稿されたものを一覧で表示してくるようなページを作っているのですが、show.html.erbのようには上手くいきません。
チュートリアルでは投稿を表示するパーシャルを作っていますが、またそれとは別のページにユーザー全ての投稿を表示してくれるような作り方をしたいです。
どのようにコードを書けば良いのかわかりませんでしたので、ご教授願えないかと思い質問致しました。
発生している問題・エラー
NoMethodError in StaticPages#list
該当するソースコード
config/routes.rb
Rails.application.routes.draw do
get 'password_resets/new'
get 'password_resets/edit'
get 'sessions/new'
get 'users/new'
root 'static_pages#top'
get '/signup', to: 'users#new'
get '/home', to: 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/terms', to: 'static_pages#terms'
get '/list', to: 'static_pages#list'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
resources :users
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
resources :microposts, only: [:create, :destroy]
end
app/controllers/users_controller.rb
class UsersController < ApplicationController
.
.
.
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
end
.
.
.
def list
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(page: params[:page])
end
app/views/users/show.html.erb
<% provide(:title, @user.name) %>
<div class="row">
<aside class="col-md-4">
<section class="user_info">
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>
</section>
</aside>
<div class="col-md-8">
<% if @user.microposts.any? %>
<h3>Microposts (<%= @user.microposts.count %>)</h3>
<ol class="microposts">
<%= render @microposts %>
</ol>
<%= will_paginate @microposts %>
<% end %>
</div>
</div>
app/views/microposts/_micropost.html.erb
<li id="micropost-<%= micropost.id %>">
<%= link_to gravatar_for(micropost.user, size: 50), micropost.user %>
<span class="user"><%= link_to micropost.user.name, micropost.user %></span>
<span class="content"><%= micropost.content %></span>
<span class="timestamp">
Posted <%= time_ago_in_words(micropost.created_at) %> ago.
</span>
</li>
app/views/static_pages/list.html.erb
app/views/users/show.html.erb
とほぼ同じ
app/views/static_pages/_micropost.html.erb
app/views/microposts/_micropost.html.erb
とほぼ同じ
0 likes