Ruby on rails RubyonRails管理命名空间和两个控制器
我尝试创建管理名称空间。我需要更新那里的分类。我有两个约会控制器。一个在文件夹类别中(仅用于索引),一个在文件夹/管理中(用于更新和创建)。但当我尝试更新某个类别时,会出现错误: 找不到CategoriesController的操作“update” 控制器文件夹中的类别控制器:Ruby on rails RubyonRails管理命名空间和两个控制器,ruby-on-rails,ruby,controller,namespaces,admin,Ruby On Rails,Ruby,Controller,Namespaces,Admin,我尝试创建管理名称空间。我需要更新那里的分类。我有两个约会控制器。一个在文件夹类别中(仅用于索引),一个在文件夹/管理中(用于更新和创建)。但当我尝试更新某个类别时,会出现错误: 找不到CategoriesController的操作“update” 控制器文件夹中的类别控制器: class CategoriesController < ApplicationController include Watchables::Watch default_tab :all, only: :
class CategoriesController < ApplicationController
include Watchables::Watch
default_tab :all, only: :index
before_action :authenticate_user!
def index
@categories = Category.order(:name)
@tags = Tag.order(:name)
end
end
class CategoriesController
控制器/管理文件夹中的类别控制器:
class Administration::CategoriesController < AdministrationController
authorize_resource
def update
@category = Category.find(params[:id])
if @category.update_attributes(category_params)
flash[:notice] = t('category.update.success')
else
form_error_messages_for @category
end
end
类管理::分类控制器
为什么我有动作更新时会出现这些错误?如何从第二个控制器获取更新?因为当我在控制器/类别中编写更新时,它可以正常工作
编辑:
感谢在
管理
命名空间中执行更新
操作的路径与默认路径不同:
现在你有:
它应该显示更新操作的路径,例如:/categories/1
,但它应该看起来像/administration/categories/1
,它将指向管理
命名空间中的类别控制器
中的更新
操作
因此,表单应该类似于:
取决于你的路线。为此运行
rake routes
。您可以发布错误堆栈跟踪吗?它会提示它哪里出了问题(我假设在点击一个按钮后它击中了一个错误的控制器)。另外,具有category的视图也会很有用。@NikitaChernov我认为表单中没有问题,因为当我在第一个控制器中编写更新操作时,它工作得很好。错误仅为:未知操作无法为CategoriesController找到操作“更新”其他内容
<div class="modal-dialog">
<div class="modal-content">
<%= form_for category do |f| %>
<div class="modal-header">
<div class="form-group">
<%= f.label :name %>
<%= f.text_field :name, class: :'form-control', rows: 1 %>
</div>
<div class="form-group">
<%= f.label :tags %>
<%= f.text_field :tags, class: :'form-control', data: { as: :select2, role: :tags } %>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal"><%= t 'category.edit.cancel' %></button>
<button type="submit" class="btn btn-primary"><%= t 'category.edit.submit' %></button>
</div>
</div>
<% end %>
</div>