我有兩個控制器,和一個繼承了其他:爲什麼我的控制器渲染錯誤的視圖?
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中沒有以任何方式繼承,在我看來這是正確的行爲。 –