2016-07-21 4 views
1

ユーザーがレコードを拒否または承認できるフォームがあります。私はそれを設計しようとしていたので、拒否のチェックボックスとすべての行を承認するチェックボックスがあります。下部には拒否と承認の2つのボタンがあります。ユーザーが1つを承認し、別のものを拒否してから拒否すると、いずれかのボタンが拒否または承認されます。1つのフォームを持つ方法、特定のサブミットに関連付けられた異なるフォーム要素を持つ2つのサブミット

私は当初は承認されたボタンをクリックするとそれを承認パスに渡します。拒否パスが選択されている場合は、これらの値を拒否パスに渡すこともわかります。

これまでのところ私のコードですが、どのように進むべきか、これが可能かどうかはわかりません。

.block-body 
    %table.table.table-striped.sla 
    %thead 
     %tr.medium 
     %th Campaign 
     %th Status 
     %th Approve 
     %th Reject 
     %th.notes{:style => "display: none"} Rejection Reason (Required) 
    %tbody 
     = form_for :campaign do |f| 
     - if @campaigns == nil 
      = @campaigns.inspect 
     - else 
      - @campaigns.each do |campaign| 
      %tr.medium 
       %td= campaign.name 
       %td= campaign.status    
       %td 
       -if ["New", "Updated"].include? campaign.status #-if campaign.status != "Approved" 
        = f.check_box :status, {id: "#{campaign.id}", :class => "approvedservices"}, "Approved" 
       %td{:style => "width:100px;"} 
       -unless ["Rejected", "Approved"].include? campaign.status 
        = f.check_box :status, {id: "reject#{campaign.id}", :class => "rejectedservices"}, "Rejected" 
       %td.notes{:style => "display: none"} 
       %input{:style => "display: none", :id => "notesrow_#{campaign.id}", :type => "text"} 

      %tr.medium 
      %td.white{:colspan => 2} 
      %td.white{:style => "width:100px;"} 
       = submit_tag "First Button", :name => 'first_button' 
      %td.white{:style => "width:100px;"} 
       = submit_tag "Second Button", :name => 'second_button' 

答えて

0

あなたが持っている別のこのようボタンを提出することができます。

def create 
    do_something if params[:reject] and return 
    do_something_else 
end 
+0

二つの動作が異なるパスを持っているとのみ:

<%= submit_tag t('approve'), name: :commit %> <%= submit_tag t('reject'), name: :reject %> 

そして、あなたのコントローラで:あなたのビューで

フォームの特定の要素は特定のパスに関連しています。これをどのように受け入れることができますか? – EamonnMcElroy

関連する問題