2016-05-06 10 views
0

私は大学の割り当ての一環としてライブラリ管理システムを作成しています。 現在、pluckの結果を取得中です。Ruby on Rails:抜粋結果を保存する

ここでやろうとしている仕事は、現在テーブルに入っている書籍のリストを表示することです。 私は主にPHPプログラマでしたので、Ruby on Railsはまったく新しい世界です。

外部の調査をしてから、私はobject.pluckを見つけました。

Book.pluck(:isbn,:title,:description,:author,:status) 

上記のスニペットに関する私の知識は、すべての本のオブジェクトから詳細を引き出すことです。 私がしたいことは、各ブックの後に編集ボタンが続くループを作成することです。 PHPでは、これはforループ内のフォームになります。しかしルビーと私は本当にそれを行う方法を知っていません

私の頭の中で私は書籍の配列[]の摘みの結果を格納したい。 ループを使ってループを繰り返し、インデックスiに格納されているブックの詳細を出力します。 しかし、pluckの結果を保存する方法がわからないのですか?

+0

Railsでは、コントローラで定義されたインスタンス変数をビューで使用できます。これをコントローラーのアクションに追加するだけです: '@books = Book.pluck(:isbn、:title、:description、:author、:status)' '' @ books'をループして、 '' index.html .erb' like '@ books.each do | book |' – dp7

+1

あなたが鳴らしたいと思うようには聞こえません - 'Book.all'を使うだけです –

答えて

2

あなたが変数に全体の本のコレクションを割り当て、その後、ビューでそれを使用することができます。

# in controller's action (most likely index) 

@books = Book.all 

# in index.html.* view (haml example): 

- @books.each do |book| 
    = link_to 'Edit book', edit_book_path(book) 

あなたがthe docs(本当に便利な)を通過していることを確認してください。 すなわち

- @books.each do |book| 
    = link_to 'Edit book', edit_book_path(book['id']) 

OR

あなたはベロのようなmapを使用することができ、アレイ@booksかけて

@books = Book.all.as_json(only: [:id, :isbn,:title,:description,:author,:status]) 

と反復:

+0

books_controller内のブックオブジェクトは(@)book it = Book.allだから私のサイトのインデックス(home.html.erb)私は次のループがあります:(@)book.each do | book | link_to 'Edit book'、edit_book_path(book)endただし、各コマンドが見つかりません。 – DetectiveClarke

+0

@DetectiveClarke 'home.html.erb'で' @ books'を使用できるようにするには、適切なコントローラの動作で定義する必要があります。コントローラーのアクションは対応するビューを持っていなければなりません。ただそこに '@ books'変数を使用できます。それ以外の場合は、あなたの '家で。html.erb'あなたは単純に 'Book.all.each do | book | = link_to 'Edit book'、edit_book_path(book) '(他の場所に変数を定義しないで) –

+0

ありがとうございました! – DetectiveClarke

0

あなたは、単にas_json

例を使用することができます図書の配列がハッシュとしてワット例

@books = Book.all.map{ |b| {id: b.id, isbn: b.isbn, title: b.title, description: b.description, author: b.author, status: b.status}} 

その後@booksは、コード

- @books.each do |book| 
    = link_to 'Edit book', edit_book_path(book[:id]) 

の下に、これはあなたの

のために働く可能性が似次に、あなたがそれを反復処理することができます..あなたに

を出力を提供します

+0

この 'result_arr' 1)は悪い/非在来の名前を持っています2)ローカルであり、どのビューでも利用できません3)表示されても、この変数に対してどのように反復しますか?これは役に立ちません –

+0

@AndreyDeineko私はコードを更新しました、あなたの助けをありがとう –

+0

これはまだあまり効率的ではありませんし、あまり意味がありません.. 'map'は' undefined method'エラーを投げ、いくつかの非効率性 –

関連する問題