我刚开始学习Rails,我无法理解:
在我的Post控制器中,我没有方法显示(未描述),但我在控制器中输入:
def method_missing(name, *args)
redirect_to posts_path
end
我认为如果控制器无法找到动作节目 - 它会调用method_missing
并在重定向到index
方法之后,但Rails会尝试渲染视图show.html.erb
。
为什么方法缺少不捕捉?我如何使用method_missing
?
答案 0 :(得分:4)
如果存在相应的模板,则Rails不需要在控制器中存在操作。它只是假设空操作并呈现模板,这就是为什么不调用method_missing
。
如果您还不需要show
操作 - 只需删除show.html.erb
,method_missing
将按预期工作。