gpt4 book ai didi

ruby-on-rails - 神秘的 AbstractController::ActionNotFound (路由就在那里)

转载 作者:行者123 更新时间:2023-12-02 20:02:14 25 4
gpt4 key购买 nike

(Rails 3.0.7)

我的routes.rb有这个:

namespace :admin do
namespace :campus_hub do
resources :billing_subscriptions, {
:except => [:destroy, :new, :create]
} do
member do
post :add_addon
end
end
end
end

rake 路线 显示此路线:

add_addon_admin_campus_hub_billing_subscription POST   /admin/campus_hub/billing_subscriptions/:id/add_addon(.:format)                            {:action=>"add_addon", :controller=>"admin/campus_hub/billing_subscriptions"}

我的 Controller (Admin::CampusHub::BillingSubscriptionsController) 具有方法 add_addon

我做了一个在日志中看起来像这样的 POST:

Started POST "/admin/campus_hub/billing_subscriptions/50059f5be628f83b13000012/add_addon" for 33.33.33.1 at Tue Jul 17 20:21:17 +0200 2012

我收到此错误:

AbstractController::ActionNotFound (The action '50059f5be628f83b13000012' could not be found for Admin::CampusHub::BillingSubscriptionsController)

我完全困惑了。我发出的 POST 请求与路线完全匹配。为什么它认为ID就是 Action ?希望我只是错过了一些明显的东西!

最佳答案

我从 Rails 版本猜测您遇到了与此类似的问题:Routing error with Rails 3 with members这是rails 3中的一个错误,请注意评论:Routing error with Rails 3 with members

您需要替换:

  member do
post :add_addon
end

像这样:

match "add_addon" => "billing_subscriptions#add_addon", :as => :add_addon, :via => :post

您会得到一个稍微交换的路径,如下所示:admin_campus_hub_billing_subscription_add_addon_path,但它应该适用于 Rails 3 和 4。

总起来就是这样:

namespace :admin do
namespace :campus_hub do
resources :billing_subscriptions, {
:except => [:destroy, :new, :create]
} do
match "add_addon" => "billing_subscriptions#add_addon", :as => :add_addon, :via => :post
end
end
end

请注意,完整的 rake 路线如下所示:

admin_campus_hub_billing_subscription_add_addon POST  /admin/campus_hub/billing_subscriptions/:billing_subscription_id/add_addon(.:format) admin/campus_hub/billing_subscriptions#add_addon

关于ruby-on-rails - 神秘的 AbstractController::ActionNotFound (路由就在那里),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com