これらの端末を識別するデータをどこに保存するかによって、それはテーブルにありますか?この
def write_data_xml credential
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.genesis {
xml.terminals {
xml.terminal {
xml.name credential.name
xml.type credential.type
xml.credentials {
xml.username credential.username
xml.password credential.password
xml.token credential.token
}
}}
}
end
File.open("credentials.xml", "a+") { |file| file.write builder.to_xml}
end
end
はあなたがいないテーブル場合は、可能性があり、その後
Credentials.each do |credential|
write_data_xml credential
end
のActiveRecordを使用したと同様に、あなたが何かをすることができ、あなたが必要なデータを収集構造体の配列を使用することができます。
ここではOPの要求にEDIT、ここでは単一責任の原則
def write_data_xml
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.genesis {
xml.terminals {
Credentials.each do |credential|
xml.terminal {
xml.name credential.name
xml.type credential.type
xml.credentials {
xml.username credential.username
xml.password credential.password
xml.token credential.token
}
end
}}
}
end
File.write("credentials.xml", builder.to_xml)
end
end
EDIT2
に従わないバージョンがあるため、構造体の配列でこれを使用する方法の例いかなるデータベースはありませんまだ
Credentials = []
Credential = Struct.new(:name, :type, :username, :password, :token)
Credentials << Credential.new('PPRO_Terminal', 'ppro', 'user1', 'passwd1', '5e36e51de2dde626804a8772dc26238c4d722bbc')
Credentials << Credential.new('PPRO_Terminal2', 'ppro', 'user2', 'passwd2', '...')
p Credentials
[#<struct Credential name="PPRO_Terminal", type="ppro", username="user1", password="passwd1", token="5e36e51de2dde626804a8772dc26238c4d722bbc">, #<struct Credential name="PPRO_Terminal2", type="ppro", username="user2", password="passwd2", token="...">]
NBは、少なくとも、本方法のこの外側を作成
投稿を更新しました。 –
@Peterの場合、everythigを1つの大きなメソッド(https://en.wikipedia.org/wiki/Single_responsibility_principle)に入れない方がよいでしょう。ファイルへの書き込みがメソッドのほうが優れていても、最適にはXML文字列。とにかく気にしなければ、編集時に指摘した場所に自分のループを導入することができます。 1つのファイルにすべてのXMLを、または各端末に1つのファイルが必要なのかどうかは明らかではありません。 – peter
すべてを1つのファイルにまとめたいと思います。 1つの表情でタグ端末に端末を生成できるように、あなたの答えを更新できますか? –