我有两个控制器,和一个继承了其他:为什么我的控制器渲染错误的视图?
class FirstController < ApplicationController
...
def show
...
end
end
class SecondController < FirstController
...
def show
...
end
end
用于第一控制器的意见文件夹包含以下文件:
- 视图/第一/ show.html.erb
- 视图/第一/ show.js.erb
对于第二控制器的意见文件夹仅包含HTML文件:
个- 视图/秒/ show.html.erb
渲染或重定向没有被控制器的show
方法中调用。
当我打电话SecondController#show
作为JS
,我预计views/first/show.js.erb
被渲染,但这不会发生。我得到回应:Rendered second/show.html.erb
。
如果我删除文件views/second/show.html.erb
,那么没有问题,我得到的回应Rendered first/show.js.erb
。这是为什么发生?
我能做些什么来以非显式的方式调用父控制器的JS视图,如渲染first/show
?
你可以显示你的'show'方法的代码吗?我怀疑'SecondController'中的'show'方法不会调用在'FirstController'中覆盖的'show'方法。 – lurker
我认为这是因为视图在Rails中没有以任何方式继承,在我看来这是正确的行为。 –