I know the question is asked number of times and I am also having same error but could'nt fix it.
I am getting below error if I try to edit my record:
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]
My new action is:
def new
@guide_package = @guide.guide_packages.new
end
My edit action is:
def edit
@guide_package = GuidePackage.find(params[:id])
end
The index from where I click edit link:
<%= link_to "Edit", edit_guide_guide_package_path(@guide, guide_package), title: "Edit" %>
My method is which I find guide user:
def set_guide
@guide = User.friendly.find(params[:guide_id])
end
Routes are:
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
My form for new and edit:
<%= form_for [:guide, @guide_package], :multipart => true do |f| %>
<% end %>
My all routes are:
namespace :guide do
resources :guides, :path => '/' do
resources :packages
end
end
The new works perfectly and creates the records as well but I am unable to edit my form using new form.