2

RailsにHAMLをインストールしています。snippet-templatesを作成して、その機能を拡張しようとしています。たとえば、私はこの一般的な画像構造を持っています:

- @images.each do |image|
  .image
    %a{ :href => image.target }
      = image_tag image.url
    %a{ :href => edit_image_path(image) }
      Edit

または少なくともその効果のために何か。私がしたいのは、私が言うことができるようにそれをきれいにすることです:

- @images.each do |image|
  = render 'snippet/image' image

これを意味的に達成するにはどうすればよいですか?明らかに、スニペットで変数を宣言し、レンダリングする前に割り当てることができますが、それは非常に怠惰なようです。スニペットとそのレンダリング方法の両方を示す例はありますか?

4

2 に答える 2

3

render:collection次のようなオプションを取ることができます:

= render :partial => "image", :collection => @images

「レイアウトとRailsでのレンダリング」ガイドのセクション3.4.5「コレクションのレンダリング」を参照してください。

パーシャルは、コレクション内のメンバーごとに1回挿入されます...パーシャルは、コレクションのメンバーにアクセスできます...パーシャルにちなんで名付けられた変数を介して

于 2013-02-13T01:30:55.427 に答える
2

あなたはこれを行うことができます:

- @images.each do |image|
  render :partial => 'snippet/image', :locals => { :image => image }

少し冗長ですが、セマンティックは問題ありません。

于 2013-02-13T01:30:53.300 に答える