gpt4 book ai didi

ruby-on-rails - 与属于命名空间 Rails 4 的资源相关联的匹配

转载 作者:行者123 更新时间:2023-12-04 16:57:53 24 4
gpt4 key购买 nike

在我的 rails 4 应用程序中,我需要创建一个允许管理员发布文章的 POST 路由。我创建了一个包含多个资源的 admin 命名空间,我希望它能够将发布/取消发布操作与作为 admin 命名空间一部分的文章资源相匹配。但是,操作映射到 admin 命名空间并跳过文章资源。

namespace :admin do
resources :articles
post 'article/:id' => 'articles#publish'
post 'article/:id' => 'articles#unpublish'

resources :ads
end

例如,我得到
admin_path   POST    /admin/articles/:id(.:format)   admin/articles#publish
POST /admin/articles/:id(.:format) admin/articles#unpublish

而不是想要的
admin_articles_path  POST    /admin/articles/:id(.:format)   admin/articles#publish
POST /admin/articles/:id(.:format) admin/articles#unpublish

我很感激任何建议。

最佳答案

首先我要明确的是你不能admin_articles_path作为 'articles#publish' 的路由辅助方法, 因为它已经被 'articles#index 消耗掉了.

admin_articles GET      /admin/articles(.:format)          admin/articles#index

将您的路线更新为:
namespace :admin do
resources :articles
post 'article/:id' => 'articles#publish', :as => "article_publish"
delete 'article/:id' => 'articles#unpublish', :as => "article_unpublish"

resources :ads
end

生成的 View :
admin_article_publish   POST     /admin/article/:id(.:format)       admin/articles#publish
admin_article_unpublish DELETE /admin/article/:id(.:format) admin/articles#unpublish

我正在使用 unpublishdelete http 动词。这更合乎逻辑。此外,您不能使用相同的路由来指向不同的操作。

关于ruby-on-rails - 与属于命名空间 Rails 4 的资源相关联的匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25029284/

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