生成这样的脚手架:
rails 生成脚手架用户名:字符串电子邮件:字符串
在控制器类中创建如下所示的代码:
respond_to do |format|
format.html # show.html.erb
format.json { render json: @user }
end
起初我不知道这是什么意思,所以我去寻找并找到了这个,我认为这足以解释其中的大部分内容。但是格式应该最终成为一个Responder 类。好吧,在 Responder 类中似乎没有声明任何 xml 或 html 或 json 成员。他们来自哪里?
PS:
脚手架开发人员将块参数命名为“格式”,当它最终成为响应程序时(格式信息来自 .html、.xml、.json 或其他)以使代码听起来有点像,这似乎很残忍英语,但阻碍了对实际情况的理解。其实 Responder::respond 是这样定义的,看起来太巧合了:
def respond
method = "to_#{format}"
respond_to?(method) ? send(method) : to_format
end
但我看不出这里的格式(在“to_#{format}”中)如何与名为格式的块参数相关联。需要明确的是,它不是实例变量,因为它缺少 @ 符号,对吧?