2017-12-28 20 views
0

Company_idを外部キーとして含むJobモデルがあります。会社のショーページでは、ジョブの新しいページにリンクするlink_toタグを使用して、simple_formを使用してcompany_idで新しいジョブを作成することができます。params idをレールに追加する方法link_to

<%= link_to "Create Job", new_company_job_path %> 

私はこのエラーを取得する "Noルート一致が{:アクション=>" 新しい ":コントローラ=> "ジョブ":ID => "13"}、欠落必要なキー:[:のcompany_id]" このレールの路線から、私のネストされたルート

resources :companies do 
    resources :jobs, only: [:new, :create, :update, :destroy] 
    end 

で、これは仕事へのルートである新しいページ

  new_company_job GET /companies/:company_id/jobs/new(.:format) jobs#new 

これは

0 job_newページに簡単な形式であります

new_pageジョブでsimple_formを使用して新しいジョブを作成するために、link_toタグにcompany_idを含める方法を知りたいと思います。

+0

あなたの仕事:

<%= link_to "Go to your landing page", landing_pages_page_path(brand: 'Apple') %> 

ルートはさらに参考のため/landing_page/page?brand=Apple

になります会社に依存するので、パスをロードするにはIDが必要です。あなたの見解には何がありますか?company_idを渡す方法が必要です。 –

+0

どのようなビューですか?仕事の新しいページで、私は単純なフォームを持っています。会社ショーのページでは、私は

<%= @ company.name%>

<%=のlink_to "ジョブの作成"、new_company_job_path%> –

+0

ので(new_company_job_path、<%=のlink_to "ジョブの作成" 'を使用しています@会社)%> '、それはあなたの会社です、そこにRailsはIDを取るでしょう。 –

答えて

1

Railsルートは引数を取ることができます。ノート*

<%= link_to "Create Job", new_company_job_path(company_id: @company.id) %> 

:あなたは明示的にあなたが他のメソッドに引数を渡すのと同じように行うことができますルートにパラメータを渡したい場合は、これはあなたがこのビューに@companyどこかを定義している前提としています。

一般的なリソースルートの場合、Railsはこれらのパラメータを適切な場所に挿入するのに十分スマートです。しかし、パラメタが経路上に定義されていない場合は、routes.rbとなります.Railsは、渡されたこれらのパラメータを、クエリの文字列としてルートの終わりまでタックします。あなたは

get 'landing_pages/page' => '#landing_pages#page' 

のようなルートを持っている場合

はたとえば、あなたが呼ばれる:http://guides.rubyonrails.org/routing.html

+0

それは、精巧な説明のおかげで働いた。それは有り難いです。 –

関連する問題