2016-08-17 47 views
0

到嵌套资源的路径,我不得不创建一个名为复制一个新的控制器动作:创建的Rails

def Copy 
    old_record = @deal.contract.find(params[:id]) 
    new_record = old_record.dup 
    new_record.save 
end 

我需要访问contract属于一个deal

我应该如何创建一个link_to视图重定向到这样的网址mydomain.com/deal/1/contract/2

在这种情况下,我想访问合同属于交易 1.

应该如何configurate我的路线文件号2?

回答

3

您可以使用resources或其单数兄弟resource设置嵌套路线。

resources :deals do 
    resources :contracts do 
    member do 
     post :copy 
    end 
    end 
end 

这将创建一个嵌套的路径,如/deals/:deal_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]) 

然而,你可能想在何时以及如何使用嵌套读书达创业: