Rails:尚未创建新用户,并且在重定向时,Chrome会说“没有收到任何数据”

时间:2015-05-04 02:59:26

标签: ruby-on-rails

每次我提交表单时,我都会被重定向到/用户,Chrome会一直给我一个错误,上面写着“没有收到任何数据”#39;一致。我试过评论所有验证的东西,但我得到了完全相同的问题。我通常会自己继续调试,但重定向上缺少rails错误消息让我陷入困境。

这是我的用户控制器:

class UsersController < ApplicationController

def index
  @users = User.all
end

def new
  @user = User.new
end

def create
  @user = User.new(user_params)
  if @user.save
    flash[:notice] = "You Signed up successfully"
    flash[:color]= "valid"
    redirect_to '/'
  else
    flash[:notice] = "Form is invalid"
    flash[:color]= "invalid"
    redirect_to 'new'
  end
end

private
    def user_params
      params.require(:user).permit(:first_name, :last_name, :email, :password)
    end
end

这是我的用户模型:

class User < ActiveRecord::Base
  before_save { self.email = email.downcase }
  validates :first_name, presence: true, length: { maximum: 50 }
  validates :last_name, presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, length: { maximum: 255 },
             format: { with: VALID_EMAIL_REGEX },
             uniqueness: { case_sensitive: false }
  has_secure_password
  validates :password, length: { minimum: 6 } 
end

这是我的表格:

<%= form_for(@user) do |f| %>
        <div class="form-group" style="margin-top: 30px">
            <%= f.label :email %>
            <%= f.email_field :email, class: 'form-control' %>
        </div>
        <div class="form-group">
            <%= f.label :password %>
            <%= f.password_field :password_digest, class: 'form-control' %>
        </div>
        <div class="form-group">
            <%= f.label :password_confirmation %>
            <%= f.password_field :password_confirmation, class: 'form-control' %>
        </div>
            <%= f.label :first_name %>
            <%= f.search_field :first_name, class: 'form-control' %>
            <%= f.label :last_name %>
            <%= f.search_field :last_name, class: 'form-control' %>
        <%= f.submit "Create an Account", class: 'btn btn-primary' %>
<% end %>

编辑:我也尝试在UsersController中创建重定向#create point to&#39; / users&#39;我得到了相同的“没有数据收到&#39;错误。在routes.rb中,我将其设置为     资源:用户 我在index.html.erb文件中有静态html。我可以通过直接访问/ users来访问它。

此外,我不太担心重定向问题,更担心缺少用户的创建。

编辑2:我可以通过播种数据库成功创建用户,但我仍然无法使用表单

创建一个用户

1 个答案:

答案 0 :(得分:0)

经过大量的捣乱和熬夜之后,我可以说我已经征服了。

我忘了把:password_confirmation放在控制器中user_params的.permit部分。现在它写着:

def user_params
  params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
end

虽然我仍然对Chrome错误感到好奇