[英]How to add params id in rails link_to
我有一個包含Company_id作為外鍵的Job模型。 在公司展示頁面上,我想使用鏈接到Job新頁面的link_to標記,以便可以使用simple_form使用company_id創建新工作。
<%= link_to "Create Job", new_company_job_path %>
我收到此錯誤“沒有路由匹配{:action =>“ new”,:controller =>“ jobs”,: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
這是job_new頁面中的簡單形式
<%= simple_form_for (@job) do |f| %> etc
我想知道如何將company_id包含在link_to標記中,以便在作業new_page中使用simple_form來創建新作業。
Rails路由可以接受參數; 如果您想顯式地將參數傳遞給路由,則可以像將參數傳遞給任何其他方法一樣進行操作:
<%= link_to "Create Job", new_company_job_path(company_id: @company.id) %>
*注意:這假設您在此視圖的某處定義了@company
。
對於一般資源路線,Rails足夠聰明,可以將這些參數插入正確的位置。 值得注意的是,如果在route.rb中的路由上未定義參數,Rails會將這些傳遞的參數作為查詢字符串添加到路由的末尾。
例如,如果您有一條類似
get 'landing_pages/page' => '#landing_pages#page'
然后您致電:
<%= link_to "Go to your landing page", landing_pages_page_path(brand: 'Apple') %>
該路線將變為/landing_page/page?brand=Apple
有關更多參考: http : //guides.rubyonrails.org/routing.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.