加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 从视图中调用link_to中的Controller方法

发布时间:2020-12-17 03:27:50 所属栏目:百科 来源:网络整理
导读:我的申请有订单的交易.在我的管理区域,我希望能够手动处理订单. 在我的访问/交易视图中 %= link_to "Process Orders","Not sure what I put here?" % 在我的access / deals_controller中 def process_orders @deals = Deal.find(params[:id] @orders = @deal
我的申请有订单的交易.在我的管理区域,我希望能够手动处理订单.

在我的访问/交易视图中

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

在我的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方法来调用admin / deals控制器中的process_orders方法?

我觉得有点像

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

它给了我以下网址

localhost:3000/access/deals/9

我怎么得到这样的东西

localhost:3000/access/deals/9/process_orders

如果这是一种更好的方法,我也愿意接受有关将processing_orders方法移动到模型或帮助器的建议.

我摘录了我的路线档案.

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) %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读