iT邦幫忙

DAY 28
0

Ruby on Rails 實戰聖經 - 初心者的30天學習記錄系列 第 28

Ruby on Rails (28) - 顯示錯誤訊息

現在我們嘗試輸入錯誤的驗證密碼,或是一個錯誤格式的email。

發現系統沒有框出錯誤訊息,且卡在註冊頁面上。

我們在controller這裡加了一個邏輯: if @user.save else render action "new"

如果儲存失敗,就會再開啟new頁面。

其實網頁上已經有錯誤訊息,只是我們沒有將它顯示出來。

可以看一下這時候的網頁原始碼,會發現有下面這個div:

<div class="field_with_errors">,代表確實有出錯,但沒有解釋發生什麼錯誤。

我們可以利用console執行,就可以直接看到錯誤在哪:

可以看到User並沒有儲存成功,且當錯誤發生時,

ActiveRecord會自動幫我們把錯誤儲存在@user.errors裡面。

所以我們的責任就只要把它們輸出給使用者看就可以了。

編輯views/users/new.html.erb加入:

	<% if @user.errors.any? %>
		<div id="error_explanation">
			<div class="alert alert-error">
				There are <%= pluralize @user.errors.count, "error" %>.
			</div>
			<ul>
				<% @user.errors.full_messages.each do |msg| %>
					<li><%= msg %></li>
				<% end %>
			</ul>
		</div>	
	<% end %>

這樣就可以成功印出錯誤訊息了。


上一篇
Ruby on Rails (27) - schema 資料庫綱要
下一篇
Ruby on Rails (29) - Flash快閃訊息
系列文
Ruby on Rails 實戰聖經 - 初心者的30天學習記錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言