みたびラジオボタン
アジャイル本(方面の方には AWDwR と略されているやつです)を見ていたら、「お、これかも」というのがあったので、ラジオボタンのところを変えてみる。
■list.rhtml の部分
<% %w(code short name).each do |key| %>
<%= radio_button_tag :sort, key, params[:sort] == key %><%=h _("#{key}") %>
<% end %>
■item controller の部分
def list
case params[:sort]
when 'name'
@page, @items = paginate :items, :order => 'name_read ASC', :per_page => 10
when 'short'
@page, @items = paginate :items, :order => 'short_name_read ASC', :per_page => 10
else
@page, @items = paginate :items, :order => 'code ASC', :per_page => 10
params[:sort] = "code"
end
end
チェックされている項目を true にするために、params[:sort] を使うので「 :sort 」が二度出てくるってのはあるけれど、%w().each を使ったので繰り返される鬱陶しさのようなものが軽減されたかなと。アクションのほうも元に戻ってすっきりした感じ。
問題があるとしたら、__("#{key}") が gettext で補足されないかと思うので、他の部分で補完されるようにあわせておくほうがよさそうということだろうか。
#追記:考えてみると根本的には変わっていないわけだ。
| 固定リンク
コメント