2017-04-20 135 views
0

我知道問題被問及次數,我也有錯誤,但無法修復它。沒有路線匹配{:action =>「show」,:guide_id =>#,:id => nil}缺少必需的鍵:[:id]

我得到以下錯誤,如果我嘗試編輯我的記錄:

No route matches {:action=>"show", :controller=>"guide/packages", :guide_id=># 
<GuidePackage id: 1, user_id: 3, title: "Paris to london", city: nil, 
price_per_adult: 2.44, price_per_children: 7.88, description: "XXXXXXXXXXXXX", 
created_at: "2017-04-20 20:01:58", updated_at: "2017-04-20 20:01:58">, 
:id=>nil} missing required keys: [:id] 

我的新動作是:

def new 
    @guide_package = @guide.guide_packages.new 
    end 

我的編輯操作是:

def edit 
    @guide_package = GuidePackage.find(params[:id]) 
    end 

指數從我點擊編輯鏈接:

<%= link_to "Edit", edit_guide_guide_package_path(@guide, guide_package), title: "Edit" %> 

我的方法是,我覺得引導用戶:

def set_guide 
    @guide = User.friendly.find(params[:guide_id]) 
    end 

航線有:

  guide_guide_packages GET  /guide/:guide_id/packages(.:format)     guide/packages#index 
           POST  /guide/:guide_id/packages(.:format)     guide/packages#create 
     new_guide_guide_package GET  /guide/:guide_id/packages/new(.:format)    guide/packages#new 
     edit_guide_guide_package GET  /guide/:guide_id/packages/:id/edit(.:format)  guide/packages#edit 
      guide_guide_package GET  /guide/:guide_id/packages/:id(.:format)    guide/packages#show 
           PATCH /guide/:guide_id/packages/:id(.:format)    guide/packages#update 
           PUT  /guide/:guide_id/packages/:id(.:format)    guide/packages#update 
           DELETE /guide/:guide_id/packages/:id(.:format)    guide/packages#destroy 

我的形式,爲新編輯:

<%= form_for [:guide, @guide_package], :multipart => true do |f| %> 
<% end %> 

我的所有路線是:

namespace :guide do 
    resources :guides, :path => '/' do 
     resources :packages 
    end 
    end 

新作品完美並創建記錄,但我無法使用新形式編輯我的表單。

+0

在您的編輯鏈接中,「@ guide」和「guide_package」的值是什麼? – mmichael

+0

@mmichael它的'/ guide/muhammad-hassan/packages/1/edit' so @guide:'muhammad-hassan'和guide_package:'1'。我從方法名稱中找到'muhammad-hassan':'@guide = User.friendly.find(params [:guide_id])''。我的路線可以嗎?我的意思是form_for的嵌套路線? – LearningROR

回答

0

我遇到了一些類似的問題。我的解決方案是:

<%= link_to "Edit", edit_guide_guide_package_path(:guide_id => @guide.id, :id => guide_package.id), title: "Edit" %> 

我希望它可以幫助你。

+0

仍然是一樣的錯誤。上面提到的錯誤來了:'<%= form_for [:guide,@guide_package],:multipart => true do | f | %>' – LearningROR

0

試試這個。

<%= form_for [@guide, @guide_package], :multipart => true do |f| %> 
<% end %> 
+0

它說:未定義的方法'user_guide_package_path'爲#<#:0x007fdde89613b0> – LearningROR

+0

即使在編輯方法:'@guide_package = @ guide.guide_packages.new'呈現新表單,但如果我做了:'@guide_package = @ guide.guide_packages.where(id:params [:id])。首先,編輯時會出現同樣的錯誤,並且有問題。 – LearningROR

相關問題