我有两个控制器,一个继承自另一个:
class FirstController < ApplicationController
...
def show
...
end
end
class SecondController < FirstController
...
def show
...
end
end
第一个控制器的views文件夹包含以下文件:
第二个控制器的views文件夹仅包含HTML文件:
未在控制器的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
?
答案 0 :(得分:0)
这很奇怪。这只是一个黑暗中的镜头,但如果在你的第二个控制器中你明确地告诉它为JS呈现哪个文件会发生什么呢?
class SecondController < FirstController
def show
respond_to do |format|
format.js { render "first/show.js" }
format.html
end
end
end