gpt4 book ai didi

ruby-on-rails - 从 View 调用 link_to 中的 Controller 方法

转载 作者:行者123 更新时间:2023-12-04 18:14:17 26 4
gpt4 key购买 nike

我的应用程序有订单交易。在我的管理区域中,我希望能够手动处理订单。

在我的访问/交易 View 中

<%= link_to "Process Orders", "Not sure what I put here?" %>

在我的访问/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 方法来调用我的管理/交易 Controller 中的 process_orders 方法?

我想像
<%= link_to "Process Orders", access_deal_path(deal) %>

这给了我以下网址
 localhost:3000/access/deals/9

我怎么得到类似的东西
localhost:3000/access/deals/9/process_orders

如果这是更好的方法,我也愿意接受将 processing_orders 方法移动到 model 或 helper 的建议。

我的路线文件的摘录。
  resources :deals do
resources :orders
end

namespace "access" do
resources :deals, :podcasts, :pages, :messages
end

最佳答案

您可以执行以下操作之一:

创建自定义路由:

match 'access/deals/:id/process_orders' => 'access/deals#process_orders', :as => 'access_deal'

那么你可以使用这个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 将如下所示:
<%= link_to "Process Orders", process_orders_access_deal_path(deal) %>

关于ruby-on-rails - 从 View 调用 link_to 中的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com