【问题标题】:Page loading without action?页面加载不采取行动?
【发布时间】:2019-07-11 05:14:12
【问题描述】:

发生了一些非常奇怪的事情。这甚至不是一个错误,但它不应该发生。

我定义了一条路线:

get :reply

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

但是我没有为此路线设置控制器操作,但页面仍在加载!我已经在我的代码中进行了搜索,但我在任何地方都没有另一个 reply 操作。

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

这是我尝试过的:

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

【问题讨论】:

  • “但这不应该发生。”实际上,这完全应该发生。这在the guide 中有专门解决。
  • @jvillian 知道了!谢谢!

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


【解决方案1】:

在 Rails 中,如果您设置了视图和路由,它可以在没有控制器操作的情况下工作。但是,如果您定义控制器操作,它将通过该操作,然后是视图。你也可以有一个没有视图的控制器动作,只要它呈现,例如

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

“and return”告诉框架不要寻找视图,并在渲染它被告知的任何内容时简单地退出。

【讨论】:

  • 有趣。我不知道。我以为你总是需要采取行动。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-11-12
  • 2019-11-07
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-24
相关资源
最近更新 更多