2015-05-04 33 views
1

每當我提交表單時,我都會被重定向到/ users,並且Chrome會一直給我一個錯誤,提示'沒有收到數據'一貫。我已經嘗試評論所有的驗證內容,但是我遇到了完全相同的問題。我通常會自己繼續調試它,但重定向的缺少rails錯誤信息讓我陷入困境。Rails:新用戶沒有被創建,當被重定向時,Chrome瀏覽器會顯示'沒有收到數據'

這裏是我的用戶控制器:

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+\-.][email protected][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#創建點'/用戶',我得到相同的'沒有數據收到'的錯誤。在routes.rb中,我將它設置爲 資源:用戶 並且我在index.html.erb文件中有靜態html。我可以直接訪問/ users。

此外,我不擔心重定向問題,更擔心用戶缺乏創建。

編輯2:我可以播種數據庫成功創建用戶,但我還是不能創建一個具有形式

+0

檢查日誌文件;可能會有更多關於正在發生的事情的細節。我懷疑'redirect_to'/''是由於沒有配置'root'路由導致這種行爲。有關根路徑配置,請參閱http://stackoverflow.com/a/6257744/429758。 –

回答

0

很多亂搞和熬夜的方式過去我的牀上時間後,我可以說我征服了。

我忘了把:password_confirmation放在控制器中user_params的.permit部分。現在,有這麼一句話:

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

雖然我還是好奇的鉻錯誤

相關問題