0

XML ファイルとのやり取りを担当する CRUD クラスを次に示します。

require "rexml/document"
include REXML  

class Crud
  @users = Array.new()
  def self.get_allusers()
    xmlfile = File.new("Users.xml")
    doc = Document.new(xmlfile)
       XPath.each( doc, "//user") do |e|
         user = {:id => e.element['id'], :firstname => e.element['firstname'], :lastname => e.element['lastname']}
         @users << user     
       end
    end
  end

これが、別のファイルからメソッドにアクセスしようとしている方法です。

users = Crud.new()
puts users.get_allusers()

「initialized constant Crud (NameError)」というエラーが表示されます。そして、私はそれが何を意味するのか分かりません。私もこの方法でメソッドにアクセスしようとしたため:

puts Crud.get_allusers()

コードの何が問題になっていますか? 何を初期化すればいいですか?

助けてくれてありがとう。

4

1 に答える 1

2

別のファイルで crud ファイルを要求またはロードする必要があります。そうしないと、定数が定義されません。Ruby のクラスは定数なので、この場合定義されていない定数は Crud クラスです。

于 2012-10-30T19:40:36.640 に答える