0

現在、1 つのボタンがインデックス フォームに追加されている状況があります。これは、インデックスフォームの一部でもある検索やチェックボックスなどの他の機能と組み合わせて完全に機能します。

のコードindex.html.erb:

<%= form_tag order_path, :method => 'get' do %>    
    <p>
      <%= submit_tag "Historical Search", :account_short => nil %>
       <%= text_field_tag :search, params[:search] %>
    </p> 
<% end %>

<%= form_tag sendnext_order_path, :method => :put do %>
    <%= submit_tag "Send to Desk" %><br/>
    -- other code from index-form
<% end %>

と組み合わせるcontroller:

def sendnext
    Order.update_all(["status_id = ? ", "2"], :id => params[:order_ids])
    redirect_to order_path, notice: 'Order succesfully send to desk.'
 end

Send to Deskここで、既存の動作中のアクションとは別のアクションを持つボタンの横に 2 番目のボタンを追加したいと考えています。今まで私はこれを実現することができませんでした。

ご意見をお聞かせください。どんなフィードバックでも大歓迎です。

4

2 に答える 2

0

button_toを使用する

<%= button_to('Send to Desk', 'sendnext', :method => "put") %>
<%= button_to('Cancel Order', 'cancelorder ', :method => "put") %>

あなたのためにフォームの世話をします。 submit_tag私が信じる最初のフォームを提出しています。

例えば

<%= button_to "New", :action => "new" %>

生成されます

# => "<form method="post" action="/controller/new" class="button_to">
#      <div><input value="New" type="submit" /></div>
#    </form>"
于 2012-11-29T17:42:46.640 に答える
0

ご協力いただきありがとうございます。現在の要件を実現する実用的なソリューションを見つけました。

次のindex.html.erbようになります。

<%= form_tag updateorder_order_path, :method => :put do %> 
   <%= submit_tag "To Desk" %><br/> 
   <%= submit_tag "Cancel Order" %> 

   -- other code like data fields

 <%end %>

次のcontroller.rbようになります。

  def updateorder   
    if params[:commit] == "To Desk"
       Order.update_all(["status_id = ? ", "2"], :id => params[:order_ids])
       redirect_to order_path, notice: 'Order(s) successfully send to desk.'
    elsif params[:commit] == "Cancel Order"
       Order.update_all(["status_id = ? ", "3"], :id => params[:order_ids])
       redirect_to order_path, notice: 'Order(s) successfully cancelled.'
    else
       Order.update_all(["status_id = ? ", "5"], :id => params[:order_ids])
       redirect_to order_path, notice: 'Order(s) successfully updated.'
    end
  end  

routes.rbには次のコードが含まれています。

     resources :orders do
        put 'updateorder', :on => :collection
     end
于 2012-11-30T09:51:09.320 に答える