作者stayfool (fool)
看板Ruby
標題[問題] 語法問題請教
時間Fri Feb 15 23:50:12 2013
環境:
e.g. Ruby 1.8.7 + Rails 3.2.8
狀況:
class ApplicationController < ActionController::Base
protect_from_forgery #問題點
end
protect_from_forgery 這個方法是在rails API 文件
http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html#method-i-protect_from_forgery
ActionController::RequestForgeryProtection::ClassMethods
的裡麵才會有的方法,而ApplicationController 的父類別是ActionController::Base
,此類別中沒有protect_from_forgery這個方法,為什麼可以在ApplicationController
直接使用此方法呢?
ActionController::Base 與ActionController::RequestForgeryProtection::ClassMethods
這兩個modules間有什麼關係存在導致可以方法可以互相使用嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.151.236
1F:→ aquarianboy:你可以試著到rails project的目錄底下輸入 rails c 02/17 04:51
2F:→ aquarianboy:進入console模式 02/17 04:52
3F:→ aquarianboy:然後輸入 puts ActionController::Base.ancestors 02/17 04:52
4F:→ aquarianboy:會發現其實事情並不單純 :) 02/17 04:52