Ruby on rails 4 Rails 4索引仅显示1个用户
我目前正在使用Desive+omniauth身份验证来注册用户。但当我点击索引链接时,它只显示1个用户。我目前约有5名演示用户注册。是否有人知道如何向其他4名用户以及更多将要注册的用户展示 这些是我的用户和控制器代码行Ruby on rails 4 Rails 4索引仅显示1个用户,ruby-on-rails-4,devise,indexing,Ruby On Rails 4,Devise,Indexing,我目前正在使用Desive+omniauth身份验证来注册用户。但当我点击索引链接时,它只显示1个用户。我目前约有5名演示用户注册。是否有人知道如何向其他4名用户以及更多将要注册的用户展示 这些是我的用户和控制器代码行 Application_contoller.rb class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For
Application_contoller.rb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :email, :password, :last_name, :first_name) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :last_name,:profile_name,:email, :password, :name) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:name, :email, :password, :last_name, :first_name) }
devise_parameter_sanitizer.for(:account_update) { |u|
u.permit(:password, :password_confirmation, :current_password, :name)
}
end
end
Application\u controller.rb
类ApplicationController
user.rb
class User < ActiveRecord::Base
has_many :authentications
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :omniauthable,
:recoverable, :rememberable, :trackable, :validatable,
:omniauth_providers => [:facebook]
attr_accessible :email, :password, :password_confirmation, :name
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.name = auth.info.name
user.email = auth.info.email
user.oauth_token = auth.credentials.token
user.oauth_expires_at = Time.at(auth.credentials.expires_at)
user.save!
end
end
def self.new_with_session(params, session)
if session["devise.user_attributes"]
new(session["devise.user_attributes"], without_protection: true ) do |user|
user.attributes = params
user.valid?
end
else
super
end
end
def password_required?
super && provider.blank?
end
def email_required?
super && provider.blank?
end
end
class用户[:facebook]
属性可访问:电子邮件、:密码、:密码确认、:姓名
定义自授权(授权)
其中(provider:auth.provider,uid:auth.uid)。首先_或_initialize.tap do | user|
user.provider=auth.provider
user.uid=auth.uid
user.name=auth.info.name
user.email=auth.info.email
user.oauth_token=auth.credentials.token
user.oauth\u expires\u at=Time.at(auth.credentials.expires\u at)
user.save!
终止
终止
定义self.new_与_会话(参数,会话)
如果会话[“设计用户属性”]
新建(会话[“Desive.user_attributes”],无_保护:true)do|user|
user.attributes=params
user.valid?
终止
其他的
超级的
终止
终止
是否需要def密码?
super&&provider.blank?
终止
是否需要def电子邮件?
super&&provider.blank?
终止
终止
用户\u controller.rb
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def index
@users = User.paginate(page: params[:page])
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
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
end
class UsersController
app/views/user/index.html.erb
<% provide(:title, 'All users') %>
<h1>All users</h1>
<%= will_paginate %>
<ul class="users">
<%= render @users %>
</ul>
<%= will_paginate %>
所有用户
app/views/user/_user.html.erb
<li>
<%= gravatar_for user, size: 50 %>
<%= link_to user.name, user %>
</li>
提前谢谢 看起来像是您的分页问题。试试看你确定没有将WillPaginate的每页设置
设置为“1”吗?似乎不起作用:/。我在任何地方都没碰过WillPaginate的设置所以。。。还有其他想法吗?可能是个愚蠢的问题,但假设这不是分页问题,你确定其他用户肯定在目标数据库中吗?我不认为是这样,因为当我转到rails控制台并运行User.paginate(第1页)时,我看到了所有的信息。。。谢谢你的意见