我应该如何重构复杂的 If else block in view?
Posted
技术标签:
【中文标题】我应该如何重构复杂的 If else block in view?【英文标题】:How should I refactor complicated 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 方式。把它移给助手??
或者是更好的方法?下面的代码不起作用。
【问题讨论】:
【参考方案1】:是的,帮助器是正确的地方,因为代码似乎只与渲染有关。所以那里没有业务逻辑。如果您发现自己在助手中添加了很多类似的东西,您可以查看http://github.com/jcasimir/draper,它是一个实现演示者模式的 gem。
【讨论】:
以上是关于我应该如何重构复杂的 If else block in view?的主要内容,如果未能解决你的问题,请参考以下文章