1
我有兩個型號:User & API
,在我的API模型我有一個靜態函數訪問當前實例模型屬性靜態函數
# Register account associated characters
public
def self.register_characters(apiid, vcode, userid)
# Fetch XML
api = EAAL::API.new("#{apiid}", "#{vcode}", "account")
result = api.Characters
# Pull characters
result.characters.each do |char|
if Character.find_by_charid(char.characterID.to_i).nil?
character = Character.new(
:charid => char.characterID.to_i,
:user_id => userid,
:name => char.name,
:corp => char.corporationName
)
character.save
api = Api.new(
:user_id => userid,
:character_id => character.id,
:apiid => apiid,
:vcode => vcode
)
api.save
character.update_character
end
end
end
我需要調用此方法在我User
模型上after_create
過濾器。然而無論如何,我嘗試將User
的變量傳遞給API
,我得到一個錯誤,那就是register_characters方法沒有得到apiid or vcode
,這是我啓動我的rails服務器時的錯誤。
在我的用戶模型中,我打電話給:after_create Api::register_characters(:apiid, :vcode, :id)
其中:apiid
,:vcode
和:id
是用戶模型屬性。
但是:由於出現這個錯誤,當我嘗試啓動我rails server
我假設方法self.register_characters
在API調用它自身沒有從用戶模式被調用。
無論如何,我該如何解決這個問題?我應該把它作爲一種標準方法還是?