2014-02-17 33 views
2

我正在從RoR教程做練習,並遇到了一個奇怪的問題,其中錯誤消息呈現兩次。部分呈現兩次的錯誤消息

new.html.slim

- provide(:title,'Sign up') 

h1 Sign up 
div class="row" 
    div class="col-sm-6 col-sm-offset-3" 
     = form_for(@user,html:{role:"form"}) do |f| 
      = render 'shared/error_messages' 
      div class="form-group" 
       = f.label :name 
       = f.text_field :name, class:"form-control" 
      div class="form-group" 
       = f.label :email 
       = f.text_field :email, class:"form-control" 
      div class="form-group" 
       = f.label :password 
       = f.password_field :password, class:"form-control" 
      div class="form-group" 
       = f.label :password_confirmation,"Confirmation" 
       = f.password_field :password_confirmation, class:"form-control" 

      = f.submit "Create Account", class: "btn btn-lg btn-primary" 

在此代碼(第7行),我渲染的局部shared/error_messages。該頁面被稱爲像這樣:

users_controller.rb

def create 
    @user = User.new(user_params) 
    if @user.save 
    else 
    render 'new' 
    end 
end 

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

任何想法?

編輯:增加了部分

= if @user.errors.any? 
    div#error_explanation 
     div class="alert alert-danger" 
      | The form has 
      = "#{@user.errors.count}" 
      | error(s) 
     ul 
      - @user.errors.full_messages.each do |msg| 
       li 
        = "#{msg}" 
+0

它是一個實際的雙渲染錯誤,或者你只是在頁面上顯示兩次東西? – sevenseacat

+0

我在頁面上顯示兩次'shared/error_messages'位,當我對此進行搜索時,我認爲問題是由於我在users_controller.rb中調用'new'造成的。 – kgtekito

+1

你能粘貼這部分的內容嗎? – Intrepidd

回答

0

我認爲你有

在部分語法錯誤=如果@ user.errors.any?

- if @ user.errors.any?