2012-11-29 46 views
0

目前我有一个按钮被添加到索引窗体的情况。这与其他功能完美结合,如搜索和复选框,它们也是索引表的一部分。Ruby on Rails - Multibutton结合复选框和高级搜索

守则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 

现在我想以比excisting工作彼此的行动旁边Send to Desk按钮添加第二个按钮。到现在为止,我无法意识到这一点。

请指教。欢迎任何反馈。

+0

这会帮助你,如果你请用新按钮尝试使用其他功能。 –

+0

我已经在控制器中编写了函数,它具有与'sendnext'相同的方法,并且被称为'cancelorder',它将status_id更新为“3”。 – jmk

+0

那么,为什么不使用cancelorder_order_path为该按钮添加另一个表单,只要你有一个路由呢? –

回答

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 
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>" 
+0

谢谢...我试过这个,并收到错误:'没有路由匹配[PUT]“/ sendnext”'。我有一个按钮的工作路线是:'资源:订单做 把'sendnext',:on =>:收集 把'cancelorder',:on =>:集合 结束' – jmk