1

こんにちは、Ruby HAMLでこれを実現するにはどうすればよいですか。同じ行にalt、src、titleの配列コレクションを生成する「eachdo」コードを実行しようとしていますが、その方法についてのアイデアが不足しています。 。

これが私のコードであるのを手伝ってください。

// Page Settings

- @transition = "data-transition"
- @effect = "sliceDown"

- @slides = [ '1.jpg','2.jpg','3.jpg' ]
- @slide_titles = ['Title_1','Title_2']                     
- @alt_name = ['Alt_Name_1','Alt_Name_2']

これは私のeach.doコードです

- @slides.each do |slides|
     %img{:src => slides, :alt => @alt_name, :title => @slide_titles, @transition => @effect}

この大量の画像を簡単に貼り付けて、将来使用できるようにするコードを作成したかったのです。私はここで立ち往生しています。

これは出力です、

<img title="["Title_1", "Title_2"]" src="1.jpg" data-transition="sliceDown" alt="["Alt_Name_1", "Alt_Name_2"]">

私が期待しているのは

<img title="Title_1" src="1.jpg" data-transition="sliceDown" alt="Alt_name_1">
<img title="Title_2" src="2.jpg" data-transition="sliceDown" alt="Alt_name_2">
4

1 に答える 1

1
- @slides.each_with_index do |slide, i|
     %img{:src => slide, :alt => @alt_name[i], :title => @slide_titles[i], @transition => @effect}

@alt_name必要な位置だけを使用する代わりに、配列などを使用していたため、コードは期待したものを提供しませんでした。実際には、出力に文字列ではなく配列が含まれていることがわかります。

each変更したばかりeach_with_indexなので、現在のスライドのインデックス(位置)も表示されます。次に、インデックスを使用して、同じ位置にあるタイトルとalt_nameを取得します。@alt_name[index]

たぶん実際的な例:

alt_name = ['Alt_Name_1','Alt_Name_2']
alt_name[0] #=> 'Alt_Name_1'
alt_name[1] #=> 'Alt_Name_2'
于 2013-02-28T01:42:45.967 に答える