我什么时候应该使用帮手?

时间:2014-01-26 17:42:12

标签: ruby-on-rails

我在我的项目中几乎没有使用它们。这是正常的吗?如果我只需要返回一行html,比如一个gravatar的图像标记,那么帮助就很棒了:

def gravatar_for(user, height=90, width=90, alt=user.name + "'s gravtatar")
    gravatar_address = 'http://1.gravatar.com/avatar/'

    clean_email = user.email.strip.downcase 
    hash = Digest::MD5.hexdigest(clean_email)

    image_tag gravatar_address + hash, height: height, width: width, alt: alt 
end

但是,如果我想循环一些错误,并返回html结构而不是单行,那很快就会变得困难。

如果你想返回一行html然后使用帮助器,那么这是一个很好的经验法则,否则使用partial来返回更复杂的html?

1 个答案:

答案 0 :(得分:0)

首先,问题是基于意见。所以,很可能它会被关闭。

以下是关于类似主题的几个问题:

DRYing rails view: partial vs helper Why shouldn't Helpers have html in them?

一般来说,帮助只是一种方式

  • 享有DRY观点
  • 制作干净的视图和控制器

一般来说,您可以通过向控制器移除一些重复的功能来干掉视图。但是,结果控制器变得杂乱无章。因此,更好的方法是在助手(vs控制器)中保持与视图相关的助手,你已经知道了。

有些助手根本不接触HTML(例如,他们可能只提供一些数字格式等),或者他们可能只生成一个标签(如您的示例中所示)或生成一段HTML代码。但是,只要您谈论某些HTML代码,就要使用partials vs helper。