Ruby on rails 如何修复rails应用程序中的路由错误?
我的routes.rb文件中包含以下内容:Ruby on rails 如何修复rails应用程序中的路由错误?,ruby-on-rails,routing,Ruby On Rails,Routing,我的routes.rb文件中包含以下内容: match "/service/:product" => "products#show_name" match "/products/custom/" => "products#custom" match "/products/customform" => "products#customform" match "/categories" =>
match "/service/:product" => "products#show_name"
match "/products/custom/" => "products#custom"
match "/products/customform" => "products#customform"
match "/categories" => "products#categories"
match "/search" => "products#search"
match "/about" => "products#about"
get 'category/:tag', to: 'products#category', as: :tag
resources :products do
resources :reviews
end
我正在尝试访问url“/服务/birchbox”。当我这样做时,我会得到一个错误
No route matches {:action=>"edit", :controller=>"products"}
有关于如何解决这个问题的建议吗?我正在尝试将此url转到列出的第一条路径(到控制器产品#show_name,但出于某种原因将进行编辑)
下面是我在控制台中看到的更多信息。看起来它会显示出你的名字,但我一直在出错
Processing by ProductsController#show_name as HTML
Parameters: {"product"=>"birchbox"}
Product Load (0.2ms) SELECT "products".* FROM "products" WHERE "products"."slug" = 'birchbox' LIMIT 1
(0.1ms) SELECT COUNT(*) FROM "reviews" WHERE "reviews"."product_id" = 14
ActsAsTaggableOn::Tag Load (0.1ms) SELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = 14 AND "taggings"."taggable_type" = 'Product' AND (taggings.context = 'tags' AND taggings.tagger_id IS NULL)
Rendered products/show_name.html.erb within layouts/application (97.3ms)
Completed 500 Internal Server Error in 164ms
ActionController::RoutingError (No route matches {:action=>"edit", :controller=>"products"}):
app/views/products/show_name.html.erb:42:in `_app_views_products_show_name_html_erb___2110533700820522490_70197663436420'
似乎在第42行的
views/products/show_name.html.erb
中有这样的内容:
<%= edit_product_path %>
更改后是否重新启动了服务器?@SergioTulentsev是的。我还更新了我收到的更多错误的问题。
<%= edit_product_path(@product) %>