问题描述
我的应用程序包含有订单的交易.在我的管理区域,我希望能够手动处理订单.
My application has deals which have orders. In my admin area I want to be able to process the orders manually.
在我的访问/交易视图中
In my access/deals view
<%= link_to "Process Orders", "Not sure what I put here?" %>
在我的访问/deals_controller
in my access/deals_controller
def process_orders
@deals = Deal.find(params[:id]
@orders = @deals.orders.where("state" == ?, "pending")
@orders.each do |order|
#order processing code here
end
end
我应该如何构建我的 link_to 方法以在我的管理/交易控制器中调用 process_orders 方法?
How should I structure my link_to method to call the process_orders method in my admin/deals controller?
我想过类似的事情
<%= link_to "Process Orders", access_deal_path(deal) %>
这给了我以下网址
localhost:3000/access/deals/9
我如何得到类似的东西
localhost:3000/access/deals/9/process_orders
我也愿意接受将 processing_orders 方法移动到模型或助手的建议,如果这是更好的方法的话.
I'm also open to suggestions on moving the processing_orders method to model or helper if that is a better way of doing this.
我的路线文件的摘录.
resources :deals do
resources :orders
end
namespace "access" do
resources :deals, :podcasts, :pages, :messages
end
推荐答案
您可以执行以下操作之一:
You can do 1 of the following:
创建自定义路由:
match 'access/deals/:id/process_orders' => 'access/deals#process_orders', :as => 'access_deal'
然后你可以使用这个link_to:
then you can use this link_to:
<%= link_to "Process Orders", access_deal_path(deal) %>
或
添加成员路由:
namespace "access" do
resources :deals do
member do
get :process_orders
end
end
end
您的 link_to 将如下所示:
Your link_to will look something like this:
<%= link_to "Process Orders", process_orders_access_deal_path(deal) %>
这篇关于从视图调用 link_to 中的控制器方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!