【问题标题】:Routing Issue in Rails 4Rails 4 中的路由问题
【发布时间】:2016-05-25 12:47:38
【问题描述】:

我已经使用 form_for 创建了一个表单 -

 = form_for @category, url: url_for(:controller => 'admin/category',:action => new_record ? "create" : "update"), name: 'udfFieldForm', id: 'udfFieldForm',:method =>'POST', remote: true do |f|

控制器看起来像-

 class Admin::CategoryController < ApplicationController
   def create
   end
   def update
   end
 end

路由定义为 -

namespace :admin do
   get 'category/:action' => 'category#index', :as => :category
   resource :categories
end

当我通过类似的错误提交表单时 -

AbstractController::ActionNotFound(找不到 AdminController 的动作“类别”):

这里的 category 是 admin 目录下的一个控制器,但它在 admin 控制器中寻找 category 动作。这里我想调用类别控制器。

请帮帮我,问题出在哪里?

【问题讨论】:

标签: ruby upgrade ruby-on-rails-4.1


【解决方案1】:

应用程序需要一个名为 AdminController 的控制器和一个名为 category 的方法,但它找不到它。这就是错误消息所说的内容以及您创建链接的方式...url: url_for(:controller =&gt; 'admin/category'...

我认为这是错误的,因为显然您的 AdminController 中没有 category 方法/操作。

【讨论】:

  • category 不是一个动作,它是 admin/category 等 admin 目录下的控制器,类别控制器中的动作是创建和更新
  • 好吧,但那是你的错误。你现在必须纠正它。该应用程序正在 AdminController 中寻找 category,但您希望它是 admin 命名空间下的 CategoryController。相应地更正您的表单链接。
【解决方案2】:

需要像在管理员命名空间中一样更新路由

post 'category/:action'=> 'category', action: :create
patch 'category/:action'=> 'category', action: :update

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多