【问题标题】:Rails: using respond_to without respondingRails:使用respond_to而不响应
【发布时间】:2019-05-21 18:46:17
【问题描述】:

对于 Ruby on Rails 项目,我必须实现两种不同的方法来检查请求的发送者是否有权访问,具体取决于“接受”标头。我在应用程序控制器中找到了检查,并使用 before_action 从不同的控制器调用它。 知道 Rails 有办法处理不同的“接受”类型,我想做以下事情:

class ApplicationController < ActionController::Base

#my function to test, if the sender can access
  def authenticate
    respond_to do |format|
      format.json {
        #do the test for an API request
      }
      format.html {
        #do the test for a HTML website request
      }
    end
  end
end

由于我的respond_to 不会总是调用redirect_to 或render(如果发件人有权访问,将执行另一个控制器方法),我想知道我是否仍然可以这样使用它。还是应该改为分析标题?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    respond_to 的意义在于根据请求的类型(HTML、JS、JSON 等)做不同的事情:因此,您需要 redirect_to 还是 render 都没有关系。

    如果您必须根据收到的请求类型更改方法的行为,请随意使用它;如果无论如何行为都相同,则不需要 respond_to。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多