0

我正在尝试移植一个 ruby​​/rails/hobo 应用程序。如何在 dryml 中使用“if”标签?

  <if:dist_image>
     <div>
       <a href="#{image.url}">
         <img src="#{image.url :thumbnail}" title="Click to enlarge"/>
       </a>
     </div>
  </if>

dist_image 可能是一个对象(包含一个图像),也可能是 nil。似乎没有任何效果。另外我在dryml中找不到条件运算符的任何文档。

我得到错误:

"undefined method `url' for "<img alt=\"Assets\" src=\"/assets/\">":ActionView::OutputBuffer"

更新:大家好,感谢您的建议。我尝试了以下所有方法:

  <if test="&dist_image">
  <if test="&dist_image.blank?">
  <if test="dist_image.blank?">
  <if test="dist_image">

它们都产生相同的错误。:( 我遵循了文档中的语法,但它不起作用。

4

1 回答 1

1

问题不在于您的 if 语句,而在于 #{image.url}。您可能想要#{this.image.url} 或#{this.url} 或其他东西。 <if:dist_image>将上下文设置为this.dist_image,因此它相当于this = this.dist_image.

以您的方式调用它意味着您正在调用一个名为“image”的助手,而不是从您的对象中获取 image 属性。

顺便说一句,您可能不需要查找文档<if>,您可能需要的是 DRYML 上下文的文档,该文档也在 DRYML 指南中。

于 2013-01-02T19:05:26.080 回答