Guest User

Untitled

a guest
Jul 25th, 2018
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. Trying to display Display an Index of Admin Users in Ruby on RailsError
  2. class UsersController < ApplicationController
  3. before_filter :authenticate, :only => [:index, :edit, :update, :destroy]
  4. before_filter :correct_user, :only => [:edit, :update]
  5. before_filter :admin_user, :only => :destroy
  6.  
  7. def show
  8. @user = User.find(params[:id])
  9. @microposts = @user.microposts.paginate(:page => params[:page])
  10. @title = @user.name
  11. @admins = User.where(:admin => "t")
  12. end
  13.  
  14. def new
  15. @user = User.new
  16. @title = "Sign up"
  17. end
  18.  
  19. def create
  20. @user = User.new(params[:user])
  21. if @user.save
  22. sign_in @user
  23. flash[:success] = "Welcome to University Sports!"
  24. redirect_to @user
  25. else
  26. @title = "Sign up"
  27. render 'new'
  28. end
  29. end
  30.  
  31. def edit
  32. @title = "Edit user"
  33. end
  34.  
  35. def update
  36. @user = User.find(params[:id])
  37. if @user.update_attributes(params[:user])
  38. flash[:success] = "Profile updated."
  39. redirect_to @user
  40. else
  41. @title = "Edit user"
  42. render 'edit'
  43. end
  44. end
  45.  
  46. def index
  47. @users = User.paginate(:page => params[:page])
  48. end
  49.  
  50. #def admins
  51. # @users = User.admins
  52. # render "users/index"
  53. #end
  54.  
  55. def admins
  56. @admins=User.where(:admin => "t")
  57. end
  58.  
  59. def destroy
  60. User.find(params[:id]).destroy
  61. flash[:success] = "User destroyed."
  62. redirect_to users_path
  63. end
  64.  
  65. def following
  66. @title = "Following"
  67. @user = User.find(params[:id])
  68. @users = @user.following.paginate(:page => params[:page])
  69. render 'show_follow'
  70. end
  71.  
  72. def followers
  73. @title = "Followers"
  74. @user = User.find(params[:id])
  75. @users = @user.followers.paginate(:page => params[:page])
  76. render 'show_follow'
  77. end
  78.  
  79. private
  80.  
  81. def authenticate
  82. deny_access unless signed_in?
  83. end
  84.  
  85. def correct_user
  86. @user = User.find(params[:id])
  87. redirect_to(root_path) unless current_user?(@user)
  88. end
  89.  
  90. def admin_user
  91. redirect_to(root_path) unless current_user.admin?
  92. end
  93.  
  94. end
  95.  
  96. FinalProject::Application.routes.draw do
  97. get "club/new"
  98.  
  99. resources :users do
  100. member do
  101. get :following, :followers
  102. end
  103. end
  104.  
  105. resources :users do
  106. collection do
  107. get :admins
  108. end
  109. end
  110.  
  111. resources :sessions, :only => [:new, :create, :destroy]
  112. resources :microposts, :only => [:create, :destroy]
  113. resources :relationships, :only => [:create, :destroy]
  114. get "sessions/new"
  115.  
  116. match '/signup', :to => 'users#new'
  117. match '/signin', :to => 'sessions#new'
  118. match '/signout', :to => 'sessions#destroy'
  119.  
  120. match '/sign_up', :to => 'pages#sign_up'
  121.  
  122. root :to => 'pages#home'
  123.  
  124. resources :users
  125. match '/signup', :to => 'users#new'
  126.  
  127. end
  128.  
  129. class User < ActiveRecord::Base
  130. attr_accessor :password
  131. attr_accessible :name, :email, :password, :password_confirmation
  132.  
  133. has_many :microposts, :dependent => :destroy
  134. has_many :relationships, :foreign_key => "follower_id", :dependent => :destroy
  135. has_many :following, :through => :relationships, :source => :followed
  136. has_many :reverse_relationships, :foreign_key => "followed_id", :class_name => "Relationship", :dependent => :destroy
  137. has_many :followers, :through => :reverse_relationships, :source => :follower
  138.  
  139. email_regex = /A[w+-.]+@[a-zd-.]+.[a-z]+z/i
  140.  
  141. validates :name, :presence => true, :length => { :maximum => 50 }
  142. validates :email, :presence => true, :format => { :with => email_regex }, :uniqueness => { :case_sensitive => false }
  143.  
  144. scope :admins, where(:admin => true)
  145.  
  146. # Automatically create the virtual attribute 'password_confirmation'.
  147. validates :password, :presence => true, :confirmation => true, :length => { :within => 6..40 }
  148. before_save :encrypt_password
  149.  
  150. def has_password?(submitted_password)
  151. encrypted_password == encrypt(submitted_password)
  152. end
  153.  
  154. def self.authenticate(email, submitted_password)
  155. user = find_by_email(email)
  156. return nil if user.nil?
  157. return user if user.has_password?(submitted_password)
  158. end
  159.  
  160. def self.authenticate_with_salt(id, cookie_salt)
  161. user = find_by_id(id)
  162. (user && user.salt == cookie_salt) ? user : nil
  163. end
  164.  
  165. def following?(followed)
  166. relationships.find_by_followed_id(followed)
  167. end
  168.  
  169. def follow!(followed)
  170. relationships.create!(:followed_id => followed.id)
  171. end
  172.  
  173. def unfollow!(followed)
  174. relationships.find_by_followed_id(followed).destroy
  175. end
  176.  
  177. def feed
  178. Micropost.from_users_followed_by(self)
  179. end
  180.  
  181. private
  182.  
  183. def encrypt_password
  184. self.salt = make_salt unless has_password?(password)
  185. self.encrypted_password = encrypt(password)
  186. end
  187.  
  188. def encrypt(string)
  189. secure_hash("#{salt}--#{string}")
  190. end
  191.  
  192. def make_salt
  193. secure_hash("#{Time.now.utc}--#{password}")
  194. end
  195.  
  196. def secure_hash(string)
  197. Digest::SHA2.hexdigest(string)
  198. end
  199.  
  200.  
  201.  
  202. end
  203.  
  204. <ul class="admins">
  205. <%= render @admins %>
  206. </ul>
  207.  
  208. match '/users/admins', :to => 'users#admins'
Add Comment
Please, Sign In to add comment