使用Ruby on Rails框架開發的Web應用程序是否有可能使用第三方安全工具攔截所有對它的調用?任何對此Web應用程序的調用都會轉到安全工具而不是Web應用程序本身,然後安全工具可以將其重定向到Web應用程序。使用WS-Security工具來保護由Ruby on Rails框架創建的Web應用程序
在響應方面類似,Web應用程序響應由安全工具之前截獲發送到客戶端(瀏覽器)
使用Ruby on Rails框架開發的Web應用程序是否有可能使用第三方安全工具攔截所有對它的調用?任何對此Web應用程序的調用都會轉到安全工具而不是Web應用程序本身,然後安全工具可以將其重定向到Web應用程序。使用WS-Security工具來保護由Ruby on Rails框架創建的Web應用程序
在響應方面類似,Web應用程序響應由安全工具之前截獲發送到客戶端(瀏覽器)
可以使用befor_methods這樣做,如果我明白你想要做正確
什麼回調函數掛鉤到Active Record對象的生命週期中,允許您在更改對象狀態之前或之後觸發邏輯。這可以用來確保在調用destroy(通過覆蓋before_destroy)時刪除關聯對象和依賴對象,或者在對屬性進行驗證之前(通過覆蓋before_validation)來對屬性進行按摩。作爲發起回調的一個例子,考慮基本#保存呼喚新的紀錄:
(-) save
(-) valid
(1) before_validation
(-) validate
(2) after_validation
(3) before_save
(4) before_create
(-) create
(5) after_create
(6) after_save
(7) after_commit
而且,after_rollback回調可以被配置爲發生回滾發出被觸發。查看ActiveRecord :: Transactions瞭解關於after_commit和after_rollback的更多細節。
此外,每觸摸一個對象觸發一次after_touch回調。
最後,爲finder找到並實例化的每個對象觸發一次after_find和after_initialize回調,同時在實例化新對象後觸發after_initialize。
總共有19回調,這給你巨大的力量作出反應,並在活動記錄生命週期的每個狀態做好準備。除了每個_create回調被相應的_update回調代替之外,調用現有記錄的Base#save的順序是相似的。
實例:
class CreditCard < ActiveRecord::Base
# Strip everything but digits, so the user can specify "555 234 34" or
# "5552-3434" and both will mean "55523434"
before_validation(on: :create) do
self.number = number.gsub(/[^0-9]/, "") if attribute_present?("number")
end
end
class Subscription < ActiveRecord::Base
before_create :record_signup
private
def record_signup
self.signed_up_on = Date.today
end
end
class Firm < ActiveRecord::Base
# Destroys the associated clients and people when the firm is destroyed
before_destroy { |record| Person.destroy_all "firm_id = #{record.id}" }
before_destroy { |record| Client.destroy_all "client_of = #{record.id}" }
end