QA@IT
«回答へ戻る

回答を投稿

単純にBook.find(1)で取得したBookオブジェクトをそのままrender :textで、テキストとして表示しようとしているからだと思います。

試しにrender :text => booksのところをrender :text => books.titleのように変更すると画面に"a"が表示されないでしょうか?

また、Book.find(1)で取得した場合は、複数のBookオブジェクトが配列で格納される訳では無く、idが1のBookオブジェクトが一つ取得される筈なので、booksでは無く、bookの変数に格納すべきかと思います。
紛らわしいので。

全ての要素を表示させたいのであれば、基本的に@book = Book.find(1)のようにインスタンス変数に格納して、View側で<%= @book.id %>などのように一つ一つ、要素を表示させる処理にするかと思います。

単純に```Book.find(1)```で取得したBookオブジェクトをそのままrender :textで、テキストとして表示しようとしているからだと思います。

試しに```render :text => books```のところを```render :text => books.title```のように変更すると画面に"a"が表示されないでしょうか?

また、```Book.find(1)```で取得した場合は、複数のBookオブジェクトが配列で格納される訳では無く、idが1のBookオブジェクトが一つ取得される筈なので、booksでは無く、bookの変数に格納すべきかと思います。
紛らわしいので。

全ての要素を表示させたいのであれば、基本的に```@book = Book.find(1)```のようにインスタンス変数に格納して、View側で```<%= @book.id %>```などのように一つ一つ、要素を表示させる処理にするかと思います。