【问题标题】:http://localhost:3000/users/new Routing Errorhttp://localhost:3000/users/new 路由错误
【发布时间】:2015-02-27 11:32:45
【问题描述】:

我正在关注本教程。 http://www.sitepoint.com/rails-userpassword-authentication-from-scratch-part-i/ 我只是标题为向用户模型添加一些验证

的部分

当我转到http://localhost:3000/users/new 时,我得到一个路由错误。但根据我的知识,溃败看起来不错。怎么了?

user_controller.rb

class UsersController < ApplicationController
  def new
    @user = User.new
  end
  def create
    @user = User.new(params[:user])
    if @user.save
      flash[:notice] = "You signed up successfully"
      flash[:color]= "valid"
    else
      flash[:notice] = "Form is invalid"
      flash[:color]= "invalid"
    end
    render "new"
  end
end

routes.rb

Rails.application.routes.draw do
  get 'users/new'

模型用户.rb

class User < ActiveRecord::Base
  attr_accessor :password
  EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
  validates :username, :presence => true, :uniqueness => true, :length => { :in => 3..20 }
  validates :email, :presence => true, :uniqueness => true, :format => EMAIL_REGEX
  validates :password, :confirmation => true #password_confirmation attr
  validates_length_of :password, :in => 6..20, :on => :create
end

【问题讨论】:

  • 能否提供错误信息?
  • 应该可以;你能粘贴rake routes的输出吗?
  • 对不起,我刚刚添加了错误然后发布。
  • 将 user_controller.rb 重命名为 users_controller.rb。
  • $ rake routes DL 已弃用,请使用 Fiddle 前缀动词 URI 模式控制器#Action users_new GET /users/new(.:format) users#new

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

将实现UsersController 的文件重命名为users_controller.rb

另外,User 类中的正则表达式 EMAIL_REGEX 会导致错误。你应该修改它,如错误所说:

EMAIL_REGEX = /\A[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\z/i

【讨论】:

  • 我就是这么做的。错误是 UsersController#new 中的 ArgumentError 提供的正则表达式使用多行锚(^ 或 $),这可能会带来安全风险。您是要使用 \A 和 \z,还是忘记添加 :multiline => true 选项?
  • 听起来你的模型中有不可靠的正则表达式,@joeyk16
  • 我刚刚将 user.rb 模型添加到我的问题中
  • 修复了它,但现在有更多错误。现在很确定教程是错误的。更多错误。没有路由匹配 {:action=>"create", :controller=>"users"}
  • 成功了。在路线中使用它。获取 '用户/新' 获取 ':controller(/:action(/:id))(.:format)'
猜你喜欢
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-11
  • 2018-09-27
相关资源
最近更新 更多