rails:209
From: ABE Masahiro <abe@c...>
Date: Fri, 17 Jun 2005 05:31:54 +0900
Subject: [rails:209] Re: 複数のsubmitボタン
あべです。 > こんなんでどうでしょうか。 ありがとうございます。 > filterに引数渡せればfilterに登録できてもっとスマートになりそうなんですが、 を参考にして次のようにしてみました。 - app/controllers/application.rb class ApplicationController < ActionController::Base before_filter :reparse_params private def reparse_params @params.each {|k, v| if k.include?('=') @params.delete(k) @params.update(CGIMethods.parse_query_parameters(k)) end } end end これで <intput type="submit" name="action=edit;id=1" value="編集"> などと書けます。これを簡単に生成するヘルパーメソッド submit_to も 定義しました。引数の順番は link_to に合わせます。 - app/helpers/application_helper.rb module ApplicationHelper def submit_to(value = "Save changes", options = { }) tag("input", { "type" => "submit", "value" => value, "name" => options.to_a.map{|kv| kv.join('=') }.join(';') }) end end これで件のテンプレートは次のようになりました。 <%= form_tag %> <!-- アイテムをリスト表示 --> <table> <% @list.each do |item| %> <tr> <td><%= check_box_tag("sel[], item.id) %></td> <td><%= item.name %></td> <td><%= item.price %></td> <td><%= link_to("編集", :action => "edit", :id => item.id) %></td> <!-- ここ↑をsubmit_to にすると編集もボタンにできる --> </tr> <% end %> </table> <%= submit_to("削除", :action => "m_delete") %> <%= submit_to("更新", :action => "m_update") %>< <!-- 一括処理のメソッド名は m_ にしました --> <%= end_form_tag %> -- ABE Masahiro <abe@c...> -- ML: rails@r... 使い方: http://QuickML.com/
207 2005-06-16 09:51 [abe@c... ] 複数のsubmitボタン 208 2005-06-16 13:39 ┗[yu1@t... ] -> 209 2005-06-16 22:31 ┗[abe@c... ]