Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中创建嵌套资源的路径_Ruby On Rails - Fatal编程技术网

Ruby on rails 在Rails中创建嵌套资源的路径

Ruby on rails 在Rails中创建嵌套资源的路径,ruby-on-rails,Ruby On Rails,我必须创建一个名为“复制”的新控制器操作: def Copy old_record = @deal.contract.find(params[:id]) new_record = old_record.dup new_record.save end 我需要访问属于交易的合同 我应该如何在视图中创建指向的链接,以重定向到类似于mydomain.com/deal/1/contract/2的url 在这种情况下,我想访问属于交易1的合同编号2 应该如何配置我的路由文件?您可以

我必须创建一个名为“复制”的新控制器操作:

def Copy
    old_record = @deal.contract.find(params[:id])
    new_record = old_record.dup
    new_record.save
end
我需要访问属于
交易的
合同

我应该如何在视图中创建指向
链接,以重定向到类似于
mydomain.com/deal/1/contract/2
的url

在这种情况下,我想访问属于交易1的合同编号2


应该如何配置我的路由文件?

您可以使用
资源
或其单一兄弟
资源
设置嵌套路由

resources :deals do
  resources :contracts do
    member do
      post :copy
    end
  end
end
这将创建一个嵌套路径,如
/deals/:deal\u id/contracts/:id/copy
。请注意,它被声明为POST,因为get请求不应创建资源

您可以创建嵌套资源的路径和URL,如下所示:

path_to([@deal, @contract])
link_to(@contract.name, [@deal, @contract])
form_for([@deal, @contract])
redirect_to([@deal, @contract])
但是,您可能希望从阅读何时以及如何使用嵌套开始:


您可以使用
资源
或其单一兄弟
资源
设置嵌套路由

resources :deals do
  resources :contracts do
    member do
      post :copy
    end
  end
end
这将创建一个嵌套路径,如
/deals/:deal\u id/contracts/:id/copy
。请注意,它被声明为POST,因为get请求不应创建资源

您可以创建嵌套资源的路径和URL,如下所示:

path_to([@deal, @contract])
link_to(@contract.name, [@deal, @contract])
form_for([@deal, @contract])
redirect_to([@deal, @contract])
但是,您可能希望从阅读何时以及如何使用嵌套开始: