0
我下面RubyonRails Tutorialsby哈特爾的(第9章)..的Heroku顯示第一個用戶在最後一頁中RailsTutorials第9章
我的本地計算機上的所有用戶的列表中顯示爲根據自己的用戶ID。
由於「AKS」(用戶名有id = 1,同時也是此頁面的管理員)顯示在列表頂部,但在Herokuapp上傳後顯示的內容相同,列表顯示方式不同。
第一個用戶出現在最後一頁,但第二個用戶及其以後仍在第一頁上顯示。 任何人都可以請我建議我該怎麼做才能在Herokuapp.com上正確顯示列表 我附上了在localhost和heroku上顯示的列表圖像。
第一圖像是示出了在本地計算機和第二個列表被列表顯示在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 %>
告訴我是否需要發佈更多代碼。
請問您可以設置日誌級別爲:debug on heroku。 – Abhinay
您可以在您的環境文件中設置日誌級別,不要忘記檢查您的Heroku應用使用的是哪種環境,默認情況下它是生產環境。所以,如果你還沒有觸及Heroku配置,你可能想調整production.rb 通過編寫'render @ users',你傳遞整個數組來渲染方法。但顯然你想傳遞一個SINGLE用戶,因爲你已經在遍歷列表。我檢查了教程,實際上作者正在做的一切正確,你的代碼是錯誤的: http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#code-index_view_first_refactoring –
ohh ok ok now i明白了..你是對的..「渲染@用戶」不需要迭代。對不起,這是我的錯誤..感謝很多朋友:) – Abhinay