【问题标题】:How should I refactor complicated If else block in view?我应该如何重构复杂的 If else block in view?
【发布时间】:2012-08-14 18:32:01
【问题描述】:

我认为有以下代码:

# 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 方式。把它移给助手??

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

【问题讨论】:

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


    【解决方案1】:

    是的,帮助器是正确的地方,因为代码似乎只与渲染有关。所以那里没有业务逻辑。如果您发现自己在助手中添加了很多类似的东西,您可以查看http://github.com/jcasimir/draper,它是一个实现演示者模式的 gem。

    【讨论】:

      猜你喜欢
      • 2019-12-21
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多