2017-01-20 18 views
0

writersbooksの間に関連付け(bibliography)があり、作家の1人、John Pencilが16冊の本を書いたとします。 フィクスbibliography.ymlリストすべての書籍を次のように反復と補間で変数名を作成する方法は?

association_1: 
    writer: john_pencil 
    book: book_1 

association_2: 
    writer: john_pencil 
    book: book_2 

... 

私がホームページはJ.P.の本のリスト全体を示していることをテストする必要があります。
したがって、私は、テストのセットアップ方法で何とか補間を使用することができれば、次のように、私は何ができる:

(1..16).each do |num| 
    book_#{num} = bibliography("association_#{num}".to_sym).book 
end 

、私は次のように図書リストが存在することをテストすることができ:

(1..16).each do |num| 
    assert_select "td.book_isdn", book_#{num}.isdn 
    assert_select "td.book_title", book_#{num}.title 
    assert_select "td.book_genre", book_#{num}.genre 
    assert_select "td.book_author", book_#{num}.author 
end 

もちろん、私はbook_#{num}を使用することはできません。私が行ったように補間作業をするために便利な方法で管理できるかどうか疑問に思っています。"association_#{num}".to_sym

+3

あなただけの配列を使用することはできません何らかの理由はありますか? –

答えて

4

そうですね。代わりに、書籍の配列を作成し、その要素を使用します。

books = (1..16).map do |num| 
    bibliography("association_#{num}".to_sym).book 
end 

その後

books.each do |book| 
    assert_select "td.book_isdn", book.isdn 
    assert_select "td.book_title", book.title 
end 
関連する問題