Ich weiß, dass die Frage oft gestellt wird und ich habe auch die gleiche Fehler aber konnte es nicht beheben.Keine Route stimmt überein {: action => "show",: guide_id => #,: id => nil} fehlt erforderliche Schlüssel: [: id]
ich unten Störung erhalte, wenn ich versuche, meinen Rekord zu bearbeiten:
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]
Meine neue Aktion:
def new
@guide_package = @guide.guide_packages.new
end
Meine bearbeiten Aktion ist:
def edit
@guide_package = GuidePackage.find(params[:id])
end
Der Index von wo ich klicke bearbeiten Link:
<%= link_to "Edit", edit_guide_guide_package_path(@guide, guide_package), title: "Edit" %>
Meine Methode ist, die ich führen den Benutzer zu finden:
def set_guide
@guide = User.friendly.find(params[:guide_id])
end
Routen sind:
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
Meine Form für neue und bearbeiten:
<%= form_for [:guide, @guide_package], :multipart => true do |f| %>
<% end %>
Meine allen Routen sind:
namespace :guide do
resources :guides, :path => '/' do
resources :packages
end
end
Das neue funktioniert perfekt und erstellt die Datensätze, aber ich kann mein Formular nicht mit einem neuen Formular bearbeiten.
In Ihrem Bearbeitungslink, was sind die Werte von '@ guide' und' guide_package'? – mmichael
@mmichael seine '/ guide/muhammad-hassan/packages/1/edit' so @guide:' muhammad-hassan' und guide_package: '1'. Ich finde 'muhammad-hassan' vom Methodennamen:' @guide = User.friendly.find (params [: guide_id]) '. Sind meine Routen in Ordnung? Ich meine verschachtelte Routen für form_for? – LearningROR