我想知道在respond_to中传递给format.xxx的块内添加应用程序代码是否合理?例如,rails代码生成器为我们提供了类似的东西:
@object = Object.new
...
... several lines of other app code ...
...
respond_to do |format|
format.xml {render :xml => @object}
end
但是,如果我改为这样做会怎么样:
respond_to do |format|
format.xml {
@object = Object.new
...
... several lines of other app code ...
...
render :xml => @object
}
end
这种方法有什么“错误”或不安全吗?请注意,对于您是否会这样做,我对您的意见不感兴趣,我只想知道这种方法是否存在任何缺点或安全风险等。
答案 0 :(得分:2)
我一直没有使用Rails,但我认为没有任何理由不将代码放入块中。
假设您有多个格式要响应,我会说在块之外放置多个格式的通用代码,并在块中放置特定于该格式的任何格式。
例如
@object = Object.new
respond_to do |format|
format.html {
@html_settings = {}
}
format.xml {
@xml_settings = {}
}
}
如果你只回应一种格式,那么无论它在哪里都无关紧要。