我知道这个问题已被问过多次,而且我也有同样的错误,但无法修复它。
如果我尝试编辑记录,我会收到以下错误:
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 :(得分:1)
试试这个。
<%= form_for [@guide, @guide_package], :multipart => true do |f| %>
<% end %>
答案 1 :(得分:0)
我遇到过类似的问题。我的解决方案是:
<%= link_to "Edit", edit_guide_guide_package_path(:guide_id => @guide.id, :id => guide_package.id), title: "Edit" %>
我希望它可以帮到你。