2014-06-27 47 views
0

我有一個'modif'動作,由鏈接激活,從我的數據庫加載數據,然後通過'modif'視圖顯示錶單。該表單鏈接到@newaut。 在此表單上,鏈接會導致「修改有效」操作。它對輸入的數據進行一些測試,並可能返回錯誤消息。 如果發生錯誤,如果我重定向到'修改'操作以顯示錯誤,我的數據將達到其原始值,我在表單上的更改將丟失,並顯示錯誤。 所以,我渲染我的'修改視圖。但@newaut不再存在,所以我必須用params數據重新加載它。結果是好的。 有沒有辦法只顯示錯誤消息,而無需重新加載表單上輸入的所有數據。 謝謝。rails:在窗體上顯示錯誤消息

def modif 
     @zgtitre="Modification d'un Auteur" 
     @newaut=Auteur.find(params[:id]) 
    end 

    def modifvalid 
     @newaut=Auteur.find(params[:auteur][:id]) 
     @newaut[:autabr]= params[:auteur][:autabr].upcase 
     @newaut[:autnom]= params[:auteur][:autnom] 
     inderr=0 
     flash[:meserr]="" 
     if ..... then 
     flash[:meserr]="xxxxx" 
     inderr=1 
     end 
     if inderr==1 then 
     @zgtitre="Modification d'un Auteur après erreur" 
     render :modif 
     return 
     else 
     @newaut.save 
     redirect_to lister_les_auteurs_path 
     end 
    end 

    <%= form_for @newaut, url: {action: "modifvalid"}, method: :post do |f| %> 
    <%= f.hidden_field :id %> 
    <div class="field"> 
     <%= f.label :Nom %><br> 
     <%= f.text_field :autnom %> 
     <%= flash[:meserr] %> 
    </div> 
    <div class="field"> 
     <%= f.label :Nom_court %><br> 
     <%= f.text_field :autabr %> 
    </div> 
    <div class="commandes"> 
     <%= f.submit "Valider", class: "commandes_liens"%> 
     <%=link_to "Abandonner", lister_les_auteurs_path, class: "commandes_liens" %> 
    </div> 
    <% end %> 

回答

1

使用此:

<%= error_messages_for :auteur %>