ruby on rails - Accessing current instance model attributes for a static function -


i have 2 models: user & api, in api model have static function

  # 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 |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 

i need call method in user model on after_create filter. anyway try pass variables user api error register_characters method not getting apiid or vcode , when start rails server.

in user model call: after_create api::register_characters(:apiid, :vcode, :id) :apiid, :vcode , :id user model properties.

however: since error appears when try boot rails server i'm assuming method self.register_characters in api called on self without being invoked user model.

anyhow how work around ? should make standard method or ?

to make flow more readable, suggest define new method calling method want.

after_create :register_characters_on_the_api  private  def register_characters_on_the_api   api.register_characters(apiid, vcode, id) end 

you need remove colons before parameters use attributes of instance. passing :apiid, instance, passes symbol , not apiid of instance.


Comments

Popular posts from this blog

monitor web browser programmatically in Android? -

Shrink a YouTube video to responsive width -

wpf - PdfWriter.GetInstance throws System.NullReferenceException -