ruby on rails - Confused with object initialization/instance variables -


i use following class definition

 class workflow     # class << self; attr_acessor :id, :name, :url  end     # please ignore troubleshooting attemp above didn't help, got objectnil      def self.initialize ( id, name, url )       @id = id       @name = name       @url = url     end      # @return [object]     def  self.list       ret = array.new       wf = hash.new       vco = vco.new       vco.getall.each |link|         link['attributes'].each |attr|           wf[ attr['name'] ] = attr[ 'value' ]         end         ret.push( self.new( wf[ 'id' ], wf[ 'name' ], wf[ 'itemhref' ]  ) )       end       return   ret     end 

used as:

  <% @workflows.each |wf| %>       <tr>         <td><%= wf.id %></td>         <td><%= wf.name %></td>         <td><%= wf.url %></td>       </tr>   <% end %> 

thus method workflow.list should return array of workflows. however, doesn't expected. when use

        ret.push( self.new( wf[ 'id' ], wf[ 'name' ], wf[ 'itemhref' ]  ) ) 

i'm getting "wrong number of arguments(3 0)" error. when use instead

       ret.push( self.initialize( wf[ 'id' ], wf[ 'name' ], wf[ 'itemhref' ]  ) ) 

the method list returns list of url strings (it last assignment in method, , should that) doing wrong?

to remove error on self.new call, change def self.initialize ( id, name, url ) def initialize ( id, name, url ). self.new tries create workflow instance,by calling default initialize method, don't take arguments,but providing arguments,which in turn throws error.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -