私は、Hartl の RubyonRails チュートリアル (第 9 章) に従っています。
ローカル マシン上のすべてのユーザーのリストが、ユーザー ID に従って表示されます。
「AKS」(ユーザー名はid=1で、このページの管理者でもあります)がリストの一番上に表示されていますが、Herokuappにアップロードした後は同じものを表示しているため、リストが異なって表示されます。
最初のユーザーは最後のページに表示されますが、2 番目以降のユーザーはまだ最初のページに表示されています。Herokuapp.com でリストを適切に表示するにはどうすればよいか教えてください。localhost と heroku で表示されるリストの画像を添付しました。
最初の画像はローカル マシンで表示されるリストで、2 番目の画像は heroku で表示されるリストです。
users_controller.rb の内容
class UsersController < ApplicationController
before_action :signed_in_user, only: [:index, :edit, :update, :destroy]
before_action :correct_user, only: [:edit, :update]
before_action :admin_user, only: :destroy
def index
#@users = User.all
@users = User.paginate(page: params[:page])
end
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
sign_in @user
flash[:success] = "Welcome to sample app"
redirect_to @user
else
render 'new'
end
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
flash[:success] = "Profile updated"
redirect_to @user
else
render 'edit'
end
end
def destroy
User.find(params[:id]).destroy
flash[:success] = "User destroyed."
redirect_to users_url
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
# below code for signed_in_user can also be written as
#def signed_in_user
# redirect_to signin_url, notice: "Please sign in." unless signed_in?
#end
# Before filters
def signed_in_user
unless signed_in?
store_location
redirect_to signin_url, notice: "Please sign in."
end
end
def correct_user
@user = User.find(params[:id])
redirect_to(root_url) unless current_user?(@user)
end
def admin_user
redirect_to(root_url) unless current_user.admin?
end
end
index.html.erb の内容
<% provide(:title, 'All users') %>
<h2>All users</h2>
<%= will_paginate %>
<ul class="users">
<% @users.each do |user| %>
<%= render @users %> <!--"render user" or "render @user" in Rails will search for _user.html.erb file-->
<% end %>
</ul>
<%= will_paginate %>
さらにコードを投稿する必要があるかどうか教えてください。