私は2つのモデルを持っています: 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
に渡そうとすると、register_characters メソッドが取得されていないというエラーが表示されます。これは、Rails サーバーを起動したときです。 User
API
apiid or vcode
私の User モデルでは、次のように呼び出します。after_create Api::register_characters(:apiid, :vcode, :id)
where :apiid
、:vcode
および:id
は User モデルのプロパティです。
ただし、起動しようとするとこのエラーが表示されるため、ユーザーモデルから呼び出されることなく、API のメソッドが呼び出されるとrails server
想定しています。self.register_characters
とにかく、これを回避するにはどうすればよいですか? 私はそれを標準的な方法にするべきですか、それとも?