Ruby on rails 我如何与哈姆保持干爽?

Ruby on rails 我如何与哈姆保持干爽?,ruby-on-rails,ruby,haml,Ruby On Rails,Ruby,Haml,我已经用轨道安装了HAML。我试图通过制作代码片段模板来扩展它的功能。例如,我有一个通用的图像结构: - @images.each do |image| .image %a{ :href => image.target } = image_tag image.url %a{ :href => edit_image_path(image) } Edit 或者至少是这样的。我想做的是把它清理干净,这样我就可以说: - @images.each

我已经用轨道安装了HAML。我试图通过制作代码片段模板来扩展它的功能。例如,我有一个通用的图像结构:

- @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
我如何在语义上做到这一点?显然,我可以在代码片段中声明一个变量,并在呈现之前分配它,但这似乎太懒了。是否有一个示例可以显示代码段及其呈现方式?

您可以这样做:

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

虽然有点冗长,但它在语义上没有问题。

render
可以使用
:collection
选项,如下所示:

= render :partial => "image", :collection => @images
请参见本指南第3.4.5节“渲染集合”,其中说明:

将为集合中的每个成员插入一次分部。。。部分[将]有权访问集合的成员。。。通过以部分变量命名的变量


我忘了!比我的解决方案好得多。