リストを別の方法で並べ替える
914 ワード
まずhelperメソッドを書きます.
ページコール:
具体的な実装:
def link_to_order(order)
link_to(order.capitalize,
:controller => "spaces",
:action => "all",
:params => { "order" => order })
end
ページコール:
<%= link_to_order("nickname") %>
<%= link_to_order("password") %>
具体的な実装:
def all
@order = params[:order] || "id"
sort_proc = case @order
when "nickname" then lambda {|r| [r.nickname] }
when "nickname",
"password" then lambda {|r| [r.send(@order)]}
when "password" then lambda {|r| r.password }
end
@spaces = Space.find(:all).sort_by &sort_proc
end