在Ruby中,數據驗證通常使用Active Record的驗證(validations)功能來實現。Active Record是Ruby on Rails框架中的一個核心組件,它允許你通過對象關系映射(ORM)的方式操作數據庫。以下是如何在Ruby on Rails中使用Active Record進行數據驗證的簡要步驟:
class User < ActiveRecord::Base
# ...
end
validates
方法為屬性添加驗證規則。例如,我們要驗證用戶的名字不為空且長度不超過50個字符:class User < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50 }
# ...
end
這里,presence: true
表示名字不能為空,length: { maximum: 50 }
表示名字的長度不能超過50個字符。你還可以使用其他驗證方法,如email: true
(驗證電子郵件格式)等。
errors
對象自定義驗證失敗時的錯誤消息。例如,我們將名字長度超過50個字符的錯誤消息更改為"名字不能超過50個字符":class User < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50, message: "名字不能超過50個字符" }
# ...
end
class UsersController < ApplicationController
def create
@user = User.new(user_params)
if @user.save
redirect_to @user, notice: '用戶創建成功'
else
render :new
end
end
private
def user_params
params.require(:user).permit(:name, :email)
end
end
在對應的視圖文件(如users/new.html.erb)中,我們可以使用以下代碼顯示錯誤消息:
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "錯誤") %>阻止了用戶創建</h2>
<ul>
<% @user.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
這樣,當用戶提交表單時,如果驗證失敗,他們將會看到相應的錯誤消息。