Rails帮助检查条件

时间:2015-03-18 00:52:22

标签: ruby-on-rails helper

我想知道检查视图的条件是否正确使用了帮助程序。

让我们来看看一个人为的例子:

辅助

def free_to_subscribe(product)
  current_user.active_member? && product.on_discount?
end

查看

...
<% elsif free_to_subscribe(product) %>
  Free to subscribe!
<% end %>
...

我认为帮助者需要返回在视图中显示的内容。返回布尔值的助手看起来有点像嗅觉。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我个人会把它放在一个模型中:

class User < ActiveRecord::Base
  def free_to_subscribe?(product)
    active_member? && product.on_discount?
  end
end

然后视图看起来像这样:

...
<% elsif current_user.free_to_subscribe(product) %>
  Free to subscribe!
<% end %>
...

视图中的代码稍微多一些,但在我看来,就像你在没有任何实际原因的情况下任意选择将某些逻辑粘贴在助手中一样。