页面加载时没有任何操作?

时间:2019-07-11 05:14:12

标签: ruby-on-rails model-view-controller

确实发生了奇怪的事情。这甚至不是错误,但不应该发生。

我定义了一条路线:

get :reply

我也为此路线定义了一个视图。

但是 我没有为此路线设置控制器操作 ,但该页面仍然加载!我已经搜索了我的代码,但是在任何地方都没有其他reply操作。

我知道我可能应该共享我的代码,但是我什至不知道从哪里开始。这是一个奇怪的事情。

这是我尝试过的:

  • 重新启动服务器
  • 在正确的控制器中添加动作。我得到完全相同的结果。
  • 我尝试打印以下内容:<%= controller_name %>#<%= action_name %>以显示它与哪个操作相关联,并为我提供了正确的控制器和操作!但是,我发誓,我正在寻找源代码,并且看不到在任何地方定义该操作!

1 个答案:

答案 0 :(得分:0)

在Rails中,如果已设置了视图和路线,则可以在不执行控制器动作的情况下工作。但是,如果您定义控制器动作,它将先经过该动作,然后再进入视图。另外,例如,您可以在不显示视图的情况下进行控制器操作,例如

def action_without_view
  ...
  render :json => ["blah"].to_json and return
  # or 
  render :text => "Yadda!" and return
end

“ and return”告诉框架不要查找视图,而只是在渲染告诉它的内容时退出。