Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用户索引中的命名错误_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.1 - Fatal编程技术网

Ruby on rails 用户索引中的命名错误

Ruby on rails 用户索引中的命名错误,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我对以下应用程序有问题,我一直在railsCasts的Rails 3中执行第211集验证,但当我尝试添加类EmailFormatValidator时,会触发一个错误 NoMethodError in Users#index Showing /home/fernando/Validations/store/app/views/users/index.html.erb where line #12 raised: undefined method `each' for nil:NilClass

我对以下应用程序有问题,我一直在railsCasts的Rails 3中执行第211集验证,但当我尝试添加类EmailFormatValidator时,会触发一个错误

NoMethodError in Users#index

Showing /home/fernando/Validations/store/app/views/users/index.html.erb where line #12 raised:

undefined method `each' for nil:NilClass
Extracted source (around line #12):

9:     <th></th>
10:   </tr>
11: 
12: <% @users.each do |user| %>
13:   <tr>
14:     <td><%= user.name %></td>
15:     <td><%= user.email %></td>
Rails.root: /home/fernando/Validations/store
结束

#获取/用户/1/编辑 定义编辑 @user=user.find(参数[:id]) 结束

#帖子/用户 #POST/users.json def创建 @user=user.new(参数[:user])

结束

#PUT/users/1 #PUT/users/1.json def更新 @user=user.find(参数[:id])

结束

#删除/users/1 #删除/users/1.json def销毁 @user=user.find(参数[:id]) @用户破坏

respond_to do |format|
  format.html { redirect_to users_url }
  format.json { head :no_content }
end
结束 结束

单击一次会出现此错误 UsersController#索引中的ArgumentError


请在应用文件夹内创建验证程序目录。 您的文件名应该类似于validators文件夹中的email\u format\u validator.rb

#app/model/user.rb
class User < ActiveRecord::Base
  validates :email, :presence => true, :uniqueness => true, :email_format => true
end
#app/model/user.rb
类用户true,:university=>true,:email\u format=>true
结束
请从“lib文件夹”中删除此验证程序文件

或 为电子邮件编写Rails验证的简单方法

更简单的
验证:email,:presence=>true,:format=>design.email\u regexp

还有一件事——之后需要重新启动服务器,以便获取新的子文件夹。
class UsersController < ApplicationController
  # GET /users
  # GET /users.json
  def index
    @users = User.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @users }
    end
  end

  # GET /users/1
  # GET /users/1.json
  def show
    @user = User.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @user }
    end
  end
respond_to do |format|
  format.html # new.html.erb
  format.json { render json: @user }
end
respond_to do |format|
  if @user.save
    format.html { redirect_to @user, notice: 'User was successfully created.' }
    format.json { render json: @user, status: :created, location: @user }
  else
    format.html { render action: "new" }
    format.json { render json: @user.errors, status: :unprocessable_entity }
  end
end
respond_to do |format|
  if @user.update_attributes(params[:user])
    format.html { redirect_to @user, notice: 'User was successfully updated.' }
    format.json { head :no_content }
  else
    format.html { render action: "edit" }
    format.json { render json: @user.errors, status: :unprocessable_entity }
  end
end
respond_to do |format|
  format.html { redirect_to users_url }
  format.json { head :no_content }
end
Unknown validator: 'EmailFormatValidator'
Rails.root: /home/fernando/Validations/store
#app/model/user.rb
class User < ActiveRecord::Base
  validates :email, :presence => true, :uniqueness => true, :email_format => true
end