Rails要回返啲嘢畀client之前,會check返有client有send啲乜Accept過來。
畀個例
首先要/objects/1.html
Client交呢個Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Rails就會搵html個項
respond_to do |format|
format.html ...
format.xml ...
format.jpg ...
format.all ...
end
對個對法係來自個type有無做Mime.register
Mime.register其中一行,有mime type係text/html,extension係html,symbol係:html
咁對html, 搵有:html,咁就夾format.html
咁Rails交出之時,就會對下Accept有無:html嘅mime type,對到有text/html,咁就send出去。
如果client無話可以Accept,就會話406 Not Accepted。
之不過Rails唔夠聰明,就算*都要指明,唔係佢唔識handle㗎。不過佢留有*/*來map去:all,咁format.all就會handle得到。
Post a Comment