入力画面も確認画面も同じrender :partial=>"form"を使えるヘルパ
入力画面の後に確認画面が来る時、入力画面は<%= text_field :user, :name %>としておいて、
確認画面は<%= h @user.name %>ってしていると思いますが、一々両方用意するの面倒だ。
更に次いでに言うと、DRYくさくない。
嫌だなー。というわけで作ってみました。
action名称がconfirmが含まれているという前提で書いています。
違うパターンの場合は改造が必要。
def confirm_tag(*args) if params[:action] =~ /confirm/ if args.size > 3 object_name, method_name = args[1].to_s.dup, args[2].to_s.dup object_name.sub!(/\[\]$/,"") return object = self.instance_variable_get("@#{object_name}") && h(object.send(method_name)) else return nil end else return send(*args) end end
を、application_helper.rbに追加するだけです。
使い方は
<%= confirm_tag :text_field, :user, :name %>
で、params[:action] =~ /confirm/がnilになる時に<%= text_field :user, :name %>として機能します。
勿論、params[:action] =~ /confirm/がnil以外のときは<%= h @user.name %>と機能します。
たいしたコードじゃないですが便利にはなるかと。