我应该如何重构复杂的if else阻止在视图中?

时间:2012-08-14 18:32:02

标签: ruby-on-rails ruby-on-rails-3 model-view-controller view view-helpers

我在视图中有以下代码:

# panel.html.erb
<% if content.content_type == "image" && content.content_image_url =~ URI::ABS_URI %>
  <%= image_tag content.content_image.pinboard_thumb %>
<% elsif content.content_image? == false && content.content_value =~ URI::ABS_URI %>
  <%= image_tag content.content_value %>
<% else %>
  <%= auto_link content.content_value %>
<% end %>

我在想我应该从if else块移动这个逻辑。怎么做Rails方式。把它移到帮手?

还是更好的方法?下面的代码不起作用。

1 个答案:

答案 0 :(得分:0)

是的,帮助程序是正确的位置,因为代码似乎只是渲染。所以那里没有业务逻辑。如果你看到自己把很多这样的东西放到帮助器中,你可以看一下http://github.com/jcasimir/draper这是一个实现presenter模式的gem。