次のクラス定義を使用します
class Workflow
# class << self; attr_acessor :id, :name, :url end
# Please ignore the troubleshooting attemp above it didn't help, I got the 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 do |link|
link['attributes'].each do |attr|
wf[ attr['name'] ] = attr[ 'value' ]
end
ret.push( self.new( wf[ 'id' ], wf[ 'name' ], wf[ 'itemHref' ] ) )
end
return ret
end
使用されます:
<% @workflows.each do |wf| %>
<tr>
<td><%= wf.id %></td>
<td><%= wf.name %></td>
<td><%= wf.url %></td>
</tr>
<% end %>
したがって、メソッドWorkflow.list
はワークフローの配列を返す必要があります。ただし、期待どおりには機能しません。私が使うとき
ret.push( self.new( wf[ 'id' ], wf[ 'name' ], wf[ 'itemHref' ] ) )
「引数の数が間違っています (0 に対して 3)」というエラーが表示されます。しかし、代わりに使用すると
ret.push( self.initialize( wf[ 'id' ], wf[ 'name' ], wf[ 'itemHref' ] ) )
メソッドlist
は URL 文字列のリストを返します (これはメソッドの最後の割り当てであり、そうあるべきです) 何が間違っていますか?