0

私は、Hartl の RubyonRails チュートリアル (第 9 章) に従っています。

ローカル マシン上のすべてのユーザーのリストが、ユーザー ID に従って表示されます。

「AKS」(ユーザー名はid=1で、このページの管理者でもあります)がリストの一番上に表示されていますが、Herokuappにアップロードした後は同じものを表示しているため、リストが異なって表示されます

最初のユーザーは最後のページに表示されますが、2 番目以降のユーザーはまだ最初のページに表示されています。Herokuapp.com でリストを適切に表示するにはどうすればよいか教えてください。localhost と heroku で表示されるリストの画像を添付しました。

最初の画像はローカル マシンで表示されるリストで、2 番目の画像は heroku で表示されるリストです。 これは localhost:3000 に表示されているリストです

これは、Herokuapp.com で表示されているリストです。

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 %>

さらにコードを投稿する必要があるかどうか教えてください。

4

1 に答える 1