我知道问题被问及次数,我也有错误,但无法修复它。没有路线匹配{: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
新作品完美并创建记录,但我无法使用新形式编辑我的表单。
在您的编辑链接中,“@ guide”和“guide_package”的值是什么? – mmichael
@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