#121 Non Active Record Model

This episode will show you how to make a model which isn't based on Active Record. You may want to do this if a resource isn't backed by the database.

# models/letter.rb
class Letter
attr_reader :char

def self.all
('A'..'Z').map { |c| new(c) }
end

def self.find(param)
all.detect { |l| l.to_param == param } || raise(ActiveRecord::RecordNotFound)
end

def initialize(char)
@char = char
end

def to_param
@char.downcase
end

def products
Product.find(:all, :conditions => ["name LIKE ?", @char + '%'], :order => "name")
end
end

# letters_controller.rb
def index
@letters = Letter.all
end

def show
@letter = Letter.find(params[:id])
end

<!-- letters/index.html.erb -->
<% title "Select a Letter" %>

<% for letter in @letters %>
<%= link_to letter.char, letter %>
<% end %>

<!-- letters/show.html.erb -->
<% title "Products for Letter #{@letter.char}" %>

<p><%= link_to "Select a Letter", letters_path %></p>

<%= render :partial => @letter.products %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值