2017-07-18 10 views
0

から、ネストされたリソースの新しいレコードを作成します。私は、プロジェクトを作成するために2つの私のインデックスページ上のボタン、クライアントを作成するための1および他のものを必要私はネストされている2つのリソース持つインデックス

resources :clientes do 
    resources :projects 
    end 

を。

<%= link_to "Nuevo Cliente", new_cliente_path %> 
<%= link_to "Nuevo Projecto", new_cliente_project_path() %> 

問題: 新しいプロジェクト、パラメータに渡されたクライアントIDを必要とnew_cliente_project_pathをクリックします。

作成する新しいプロジェクトにまだクライアントが割り当てられていないため、このパラメータはまだありません。

新しいプロジェクトフォームからプロジェクトのクライアントを選択したいと思います。

どうすればいいですか?

ありがとうございます!

答えて

1

あなたが好きなもの、非ネストされたリソースを持っている必要があります:あなたは(あなたのnew_projectsprojectsパスはもはやcliente_idが必要になるという通知を)与える

resources :clientes do 
    resources :projects, except: [:new, :create] 
end 

resources :projects, only: [:new, :create] 

cliente_projects GET /clientes/:cliente_id/projects(.:format)    projects#index 
edit_cliente_project GET /clientes/:cliente_id/projects/:id/edit(.:format)  projects#edit 
    cliente_project GET /clientes/:cliente_id/projects/:id(.:format)   projects#show 
        PATCH /clientes/:cliente_id/projects/:id(.:format)   projects#update 
        PUT /clientes/:cliente_id/projects/:id(.:format)   projects#update 
        DELETE /clientes/:cliente_id/projects/:id(.:format)   projects#destroy 
      clientes GET /clientes(.:format)         clientes#index 
        POST /clientes(.:format)         clientes#create 
     new_cliente GET /clientes/new(.:format)        clientes#new 
     edit_cliente GET /clientes/:id/edit(.:format)       clientes#edit 
      cliente GET /clientes/:id(.:format)        clientes#show 
        PATCH /clientes/:id(.:format)        clientes#update 
        PUT /clientes/:id(.:format)        clientes#update 
        DELETE /clientes/:id(.:format)        clientes#destroy 
      projects POST /projects(.:format)         projects#create 
     new_project GET /projects/new(.:format)        projects#new 
その後

、代わりに:あなたが必要となります

<%= link_to "Nuevo Projecto", new_cliente_project_path() %> 

以下のような何かを行うに:新しいプロジェクトのフォームで

<%= link_to "Nuevo Projecto", new_project_path %> 

を、あなたは、クライアントが選択するか、そのような何かが必要になりますので、あなたがあなたのフォームを送信するときには、関連付けを作成するために利用可能なclient_idを持つことになります。

+1

ありがとう、Jvillian! – Gibson

関連する問題