チュートリアルを次々と読んでいますが、何もうまくいかないようです。目標は、要素と属性を含む XML ドキュメントを取得し、そのデータをデータベースに挿入することです。各要素/属性はデータベースの列になり、各エントリは行になります。これが、私が作業してきた作成済みの XML ドキュメントです。
<?xml version="1.0"?>
<library>
<NAME><![CDATA[Favorite Books]]></NAME>
<book ISBN="11342343">
<title>To Kill A Mockingbird</title>
<description><![CDATA[Description#1]]></description>
<author>Harper Lee</author>
</book>
<book ISBN="989894781234">
<title>Catcher in the Rye</title>
<description><![CDATA[This is an extremely intense description.]]></description>
<author>J. D. Salinger</author>
</book>
<book ISBN="123456789">
<title>Murphy's Gambit</title>
<description><![CDATA[Daughter finds her dad!]]></description>
<author>Syne Mitchell</author>
</book>
</library>
そこで、2 つのエントリを含むテーブルが必要です。各エントリには、ISBN、タイトル、説明、および作成者が含まれています。それが基本です。(CDATAは完全にオプションだと思います。それが私の問題の一部である場合は、ぜひ削除しましょう...)
最終目標はもう少し複雑です。複数の書籍を含む複数の図書館。データベースには相互の関係があるため、書籍データベースから図書館データベースを参照したり、その逆を行ったりすることができます。私は完全に道に迷っており、新人であることは間違いありませんが、コンピューターに関する十分な知識があり、試して試してみたいと思っています。
デフォルトの SQLite3 データベース (3.6.20) で Rails 3.2.6 を使用しています。REXML、ROXML、LibXML などをインストールし、API とウォークスルーを読みましたが、うまくいきません。Book オブジェクト (.title、.author、.isbn、および .description メソッドを持つ) を使用して、XML ドキュメントを Library オブジェクト (.name メソッドを使用) に変換する簡単な方法が必要です。
どんな助けも本当に感謝しています!
アップデート!
よし、次の質問。私はこの背後にあるロジックをいじっていて、次のことを行う最良の方法を知りたいと思っていました...
この新しく改善された XML ファイルがあるとします。
<?xml version="1.0"?>
<RandomTag>
<library name='Favorite Books'>
<book ISBN="11342343">
<title>TKAM</title>
<description>Desc1</description>
<author>H Lee</author>
</book>
<book ISBN="989894781234">
<title>Catcher in the Rye</title>
<description>Desc2</description>
<author>JD S</author>
</book>
</library>
<library name='Other Books'>
<book ISBN="123456789">
<title>Murphy\'s Gambit</title>
<description>Desc3</description>
<author>Syne M</author>
</book>
</library>
</RandomTag>
これで、2 つのライブラリができました。1 つ目は「お気に入りの本」というタイトルで 2 本の本があり、2 つ目は「その他の本」というタイトルで 1 本の本があります。
各本がどの図書館に属しているかを知る最善の方法は何ですか? もともと、私は Library データベースと Book データベースを作成しました。各 Book オブジェクトには、正しい Library を参照する library_id フィールドがありました。したがって、各データベースは、「@library.books.each do |b| b.title」のような構文を使用して正しく入力できます。ただし、これは、ライブラリが 1 つしかない場合にのみ機能しました。
提供された Book ループを同様の Library ループ内に入れ子にしてみましたが、.css メソッドは、それがどこにあるかに関係なく、すべての一致を見つけます。UNTIL を特定のポイントで見つける .css メソッドはありますか?
言い換えれば、各本をそれぞれのライブラリにインポートできるようにしたいと思います。XML ファイルにフィールドを追加できません。
再度、感謝します。