对于Ruby on Rails项目,我必须实现两种不同的方法来检查请求的发送者是否具有访问权限,具体取决于“ Accept”-头。我将支票放置在Application控制器中,并使用before_action从其他控制器中调用它。 知道Rails可以处理不同的“ Accept”类型时,我想执行以下操作:
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
由于我的response_to不会总是调用redirect_to或render(如果发送者有权访问,则将执行另一个控制器方法),我想知道我是否仍然可以像这样使用它。还是我应该分析标题?
答案 0 :(得分:2)
response_to的要点是根据请求的类型(HTML,JS,JSON等)执行不同的操作:因此,无论您是否需要redirect_to或呈现,都没有关系。
如果必须根据收到的请求类型更改方法的行为,请随时使用它;如果无论行为如何都是相同的,则无需response_to。