Rails控制器-继承自定义操作

乔迪·纳利雅斯

我已经使用继承方法将控制器代码DRY了。

class MastersController < ApplicationController
  def index
    ...
    ...
  end

  ...
  ...
end

class ItemsController < MastersController
end

现在,我向MastersController添加了自定义操作

class MastersController < ApplicationController
  def index
    ...
    ...
  end

  ...
  ...

  def clone
    ...
    ...
  end
end

我已经添加了该商品的路线

resources :items do
  get :clone
end

现在,当我尝试访问myapp.dev/items/1/clone时,出现了错误

AbstractController::ActionNotFound at /items/1/clone
The action 'clone' could not be found for ItemsController

截屏

如果我在ItemsController中添加“克隆”操作,该错误就会消失。

class ItemsController < MastersController
  def clone
    ...
    ...
  end
end

如何在Rails Controller中抽象自定义操作?

用户名

不能clone用作从父控制器继承的动作。ApplicationController除了您这都是对的MastersController

将您的操作重命名为copy,便可以在中进行定义,MastersController并正确地路由至ItemsController#copy

请注意,我不能告诉你为什么。cloneObject类中定义了一个Ruby方法我怀疑这是原因-也许有更多知识的人可以解释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

控制器中的自定义操作在yii2中不起作用

如何在Ruby on Rails中添加自定义路线,控制器和动作?

用于自定义rails_admin控制器操作的Rspec测试?

Rails中的Rspec控制器测试是从AbstractController :: Base继承的控制器

Rails:从控制器的lib文件夹加载自定义类

如何在自定义控制器操作中呈现jsonapi-resources响应?

通过自定义控制器操作将ActiveStorage文件发送给用户

在控制器中找不到Rails 5自定义模块功能

创建自定义操作和控制器示例不起作用

使用自定义路由将aspnetcore路由到控制器操作

自定义MVC帮助程序扩展控制器和操作上的“转到声明”功能

Rails 4自定义控制器操作错误-“没有ID找不到'模型'”

如何在Rails 4中添加要设计的自定义字段并自定义注册控制器?

什么时候应该在Rails中创建单独的控制器而不是自定义操作?

将自定义表单值传递给自定义控制器操作

Rails路由自定义用户控制器的正确方法并设计出宝石

自定义控制器操作update_attribute返回nil

没有ID找不到[模型]:Rails 4自定义控制器操作

从自定义IHttpHandler重定向到控制器操作

自定义控制器动作

努力正确实现自定义 rails 控制器方法

如何防止 odata 控制器中的自定义操作出现 HTTP 404?

如何在自定义控制器操作中显示本机 DNN 弹出窗口?

如何从不同的控制器访问变量以使自定义下载操作起作用

当我单击按钮 Rails 时,从视图中调用自定义控制器操作

无法路由到 Yii2 控制器中的自定义操作

Rails - 如何将控制器中的自定义方法更改为常规方法?

Rails / ActiveAdmin - 如何将自定义数据从控制器传递到内容中

Rails:如何制作一个调用自定义控制器方法的按钮?