Closed kayhide closed 10 years ago
isbnを使ってどうやって書籍の情報を取得しますか? 方法によって取得出来る情報が変わるかもしれません。
isbn自体は、国、出版社、タイトル、著者の情報が付与されているみたいです。
さしあたってアマゾンからデータを取得するのがよいと思います。 タイトルや著者といった情報は取得できます。
わかりました。調べてみます。
amazon-ecsを使ってみました。 とりあえず、/books/newに、キーワードの検索結果を表示させたいのですが、うまく出来ません。なにがいけないのでしょうか?
ブランチを新しく作りました。 http://github.com/itoodaisuke/dokushokanri/tree/amzn-api
うまく出来ない、の詳細を教えてください。 少なくとも、
くらいは知らせていただきたいです。
すみません。詳細です。
最終的に期待する動作として、/books/newにあるフォームからキーワード検索することで、/books/newにキーワードの検索結果を表示し、さらにそれを選択できるようにし、選択するとフォームにデータが入力されるようしたいです。
了解しました。 それではまず問題の切り分けをしましょう。
大きくわけて、考えられるのは
の2点です。
問題が起きているのはどちらでしょうか? これを突き止めましょう。
rails のコンソールは使っていますか? http://guides.rubyonrails.org/command_line.html
もし使っていないようでしたら、使ってみてください。 アマゾンからデータが取れてるか否かを調べるのに役立つでしょう。
railsコンソールですが、guideを読んでも使い方がよくわかりません。 今回のようなときに、どのように使えばよいのでしょうか?
http://tmpla.info/archives/1591 を参考に、books/indexで情報を取得することはできましたので、おそらく、
のだと思います。
新しくブランチを切りました。
http://github.com/itoodaisuke/dokushokanri/compare/amzn-api-index
books/index
では情報が表示される。
books/new
では情報が表示されない。
ということですね。
では問題をまた区切っていきましょう。
BooksController#new
の中でデータが取得できていない。のどちらでしょうか?
books/index
では表示されており、ルートの設定を post 'books/new' と変更しているので、
BooksController#new
の中でデータが取得できていない。
のだと思いますが、rails s をした際のログを見る限り、Amazon::Ecs.item_searchを行っており、うまくやっているように思います。
indexで動く設定をnewにそのまま適用して、動作が変わる理由がわからないです。 また、rails consoleで@resに保存されているかを確認する仕方がわかりませんでした。
では、どんどん細かくしましょう。 流れはこうですね。
Amazon::Ecs.item_search
を呼ぶ。@res
に入れる。1はできていて、3でもないなら、2が怪しいです。
indexで動く設定をnewにそのまま適用して、動作が変わる理由がわからないです。
その理由を突き止めれば対応できますね。
また、rails consoleで@resに保存されているかを確認する仕方がわかりませんでした。
ログに書き出させるのがお手軽です。 http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger
(誤ってClosed押してしまいました。)
binding.pryをnewアクション内に使ったところ、@resに呼んだ結果を格納できていました。 したがって、
ルートの設定で間違っていると思うので、guide読みつつ調べてみます。
まだルーティング周りが手付かずですが、ようやく、newページに検索結果を表示することができました。
ルーティングを綺麗にしていくと同時に、
検索結果を選択することで、フォームに記入されるようにしていこうと思います。
完了
enhancement(機能追加)やbug(不具合修正)のイシューを完了する場合は、対応するコミットを分かるようにしてくださいませ。
コミットのコメントでイシューのナンバーを入れておくのがオススメです。 https://help.github.com/articles/closing-issues-via-commit-messages
コミットのコメントでイシューcloseしたり出来るんですね!やってみます。
2 と関連しますね。
isbnの他に何を管理するのか決めたら、その情報を取得できるようにしましょう。
取得できる情報を先に調べる方がよいかもしれませんね。