我是Ruby on Rails的新手,我正在研究一个现有的项目,试图添加新功能。我使用以下方法生成了一个模型:
rails generate model PublisherOrg owner:string
我使用以下方法生成了控制器:
rails generate controller admin/publisher_orgs
然后在路由文件中,我添加了以下内容:
namespace :admin, path: '/admin' do
root to: 'dashboard#index'
resources :carriers
resources :publisher_orgs
end
我遇到的问题是生成的控制器文件以
Admin::PublisherOrgsController < ApplicationController
但是,对于其他控制器,它就像
Admin::CarriersController < Admin::BaseController
继承是不同的。问题在于某些方法对PublisherOrgsController
不可见。
手动更改控制器文件后,首先:
Admin::PublisherOrgsController < Admin::BaseController
"未知方法"错误已解决。
我想知道我所做的是否正常。我的意思是手动更改父类是否足够,或者我还需要做其他事情?
提前谢谢。
之后更改控制器基类是完全可以的。我什至认为这是在控制器上使用继承特权的唯一方法,因为据我所知,没有选择在"rails g 控制器"调用中执行此操作。
永远记住,轨道通常看起来像魔术,但内心深处只是一些很酷的红宝石代码;)因此,如果要更改 rails 控制器的基类,只需更改表示所述控制器的 ruby 类的基类即可。