質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

2687閲覧

2つのsubmit_tagを使い分けたい

makox0105

総合スコア65

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2020/02/21 02:07

excel出力とフラグ変更をそれぞれでsumitしたい。
controllerでフラグの有り無しで分岐したおりますが、VIEWの<%= form_tag({format: "xlsx",controller: "ltos", action: "labels",method: "post"}, {multipart: true}) do %>のformat: "xlsx"が無いとExcelに落とせず、有るとフラグ変更時にページが表示されず、ActionController::UnknownFormatになります。

controller

1 def labels 2 respond_to do |format| 3 if params[:flag].blank? 4 @labels = Lto.where(id: params[:label_ids]) 5 format.html 6 format.xlsx do 7 8require 'rubyXL/convenience_methods' 9 10 workbook = RubyXL::Parser.parse('app/assets/template.xlsx') 11 12 workbook.calc_pr.full_calc_on_load = true 13 workbook.calc_pr.calc_completed = true 14 workbook.calc_pr.calc_on_save = true 15 workbook.calc_pr.force_full_calc = true 16 17 worksheet = workbook[0] 18 19 num = 2 20 @labels.each{|lto| 21 worksheet[num][0].change_contents(lto.return_list.order_list.hdd_customer + "/" + lto.return_list.order_list.hdd_division) 22 worksheet[num][1].change_contents(lto.lto_title) 23 worksheet[num][2].change_contents(lto.return_list.order_list.hdd_title_no) 24 worksheet[num][3].change_contents("LTO" + lto.lto_no[-1]) 25 worksheet[num][4].change_contents(lto.lto_no) 26 worksheet[num][5].change_contents(lto.start) 27 worksheet[num][6].change_contents(lto.bytes/1073741824+1) 28 worksheet[num][7].change_contents(lto.complete) 29 num += 1 30 } 31 d = Time.now 32 send_data workbook.stream.read, 33 filename: "LTOラベル_" + d.strftime("%y%m%d%H%M%S")+".xlsx".encode(Encoding::Windows_31J) 34 end 35 else 36 @ltos = Lto.where( :id => params[:label_ids]).update_all( :is_deleted => params[:flag], :updated_at => Time.now ) 37 format.html { redirect_to :back, :notice => "フラグを変更しました。" } 38 format.json { head :no_content } 39 end 40 end 41 end

view

1<%= form_tag({format: "xlsx",controller: "ltos", action: "labels",method: "post"}, {multipart: true}) do %> 2<div class="form-group"> 3<%= submit_tag 'LTOラベル出力', data: {confirm: "Excel出力しますか?"}, class: 'btn btn-primary' %> 4</div> 5<hr> 6<div class="form-group"> 7 <div class="row"> 8 <div class="col-xs-2"align="right"><%= label_tag :flag, :消去一括フラグ変更, params[:flag] %></div> 9 <div class="col-xs-4"><%= select_tag :flag, options_for_select(['消去不可','消去可','消去済']),{:prompt => "選択してください。", :class => "form-control" } %></div> 10 <%= submit_tag nil, data: { confirm: '変更してもよろしいですか?'},:disable_with => "Wait...",:class => 'btn btn-primary'%> 11 </div> 12</div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ラベル出力の方をsubmit_tagからbutton_tagに変更しました。

view

1<%= button_tag 'LTOラベル出力', value: 'xlsx', name: 'format',:class => 'btn btn-primary' %>

投稿2020/02/21 04:21

makox0105

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問