# 1. Validations
# Ensure data meets certain criteria before it gets saved to the database.
class User < ApplicationRecord
validates :username, presence: true, uniqueness: true
validates :email, presence: true, uniqueness: true, format: { with: URI::MailTo::EMAIL_REGEXP }
end
# 2. Associations
# Establish connections between different models in the database.
class User < ApplicationRecord
has_many :posts
belongs_to :account
end
# 3. Callbacks
# Execute logic at certain points in an object's lifecycle.
class Order < ApplicationRecord
before_save :update_total
private
def update_total
self.total = calculate_total
end
def calculate_total
# Logic to calculate the order total
end
end
# 4. Controllers
# Handle incoming requests, process data, and render views.
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
def create
@user = User.new(user_params)
if @user.save
# Logic for successful save
else
# Logic for failed save
end
end
private
def user_params
params.require(:user).permit(:username, :email)
end
end
# 5. Views
# Display the user interface and interact with users.
# This is an example of a view file (e.g., app/views/users/index.html.erb).
<h1>Listing Users</h1>
<ul>
<% @users.each do |user| %>
<li><%= user.username %></li>
<% end %>
</ul>