2015-05-28 49 views
0

我想使用其字段旁邊的Rails錯誤消息。例如;Rails錯誤驗證顯示在字段下方

我有一個窗體來創建新用戶;

<h1>Sign up</h1> 

<div class="row"> 
    <div class="col-md-6 col-md-offset-3"> 
    <%= form_for(@user) do |f| %> 
     <%= render 'shared/error_messages', object: f.object %> 

     <%= f.label :name %> 
     <%= f.text_field :name, class: 'form-control' %> 

     <%= f.label :email %> 
     <%= f.email_field :email, class: 'form-control' %> 

     <%= f.label :password %> 
     <%= f.password_field :password, class: 'form-control' %> 

     <%= f.label :password_confirmation, "Confirmation" %> 
     <%= f.password_field :password_confirmation, class: 'form-control' %> 

     <%= f.submit "Create my account", class: "btn btn-primary" %> 

    <% end %> 
    </div> 
</div> 

而我用,_error_messages.html.erb部分爲;

​​

我知道它只是將錯誤信息顯示爲列表。我認爲應該有一種方法來檢查每個字段上的散列錯誤。只是不知道如何。

謝謝你的幫助!

+0

您可以檢查出簡單的形式寶石 –

回答

1

您可以創建一個幫助器方法,它將當前對象和屬性名稱作爲參數,並生成必要的html以在字段中顯示內聯/旁邊的錯誤。像

def errors_for(object, field_name) 
    if object.errors.any? && object.errors.messages[field_name] 
    object.errors.messages[field_name].join(', ') 
    end 
end 

,那麼你可以簡單地調用從表單這個輔助方法

<%= f.label :email %> 
    <%= f.email_field :email, class: 'form-control' %> 
    <%= errors_for(@user, :email) %> 
+0

感謝你的幫助,但有更簡單的方法來做到這一點? ,考慮到我有很多形式,意味着我必須創建這麼多,'<%= errors_for(.....,.......)%>'(......將被更改爲每個標籤) – Shalafister

+0

然後,正如@Amit Sharma告訴'simple_form'是您的問題的正確解決方案 – bhanu

+0

好的,感謝您的幫助! – Shalafister