0

理想情况下,可重用的代码,我们可以放入一个单独的部分,并可以从不同的操作中调用它。

现在,如果我的 parial_list.html.haml文件有代码

 #betting_list
   %table.table
    %tr  
    %th{:align => "left"}="Start time"
    %th{:align => "left"}="Fixture"
    %th{:align => "left"}="Won"
    %th{:align => "left"}="Draw"
    %th{:align => "left"}="Lost"
    %th{:align => "left"}="Amount"
  - @upcoming_event.each do |event|
    %tr{:class => cycle('even', 'odd')}
      %td=event.start_at.strftime("%b %d %H:%M")
      %td=link_to event.name, event
      - event.outcomes.each do |outcome|
        - if outcome.label =="Won"
          %td=outcome.odds 
        - if outcome.label =="Draw"
          %td=outcome.odds 
        - if outcome.label =="Lost"
          %td=outcome.odds 
      %td=event.bets.count
= paginate(@upcoming_event)

我们是否应该始终在不同的部分或中保留数据行或循环?. 我处于困境中。我不需要重新使用该循环部分来重用。

是否可以重构这样的代码?

4

2 回答 2

1

您可以在新的部分中更好地保​​持循环。

我还看到了多个 IF,有点令人困惑。

你可以这样做

- if (["Won","Lost","Draw"].include? outcome.label)
    %td=outcome.odds 
于 2013-02-22T12:41:07.890 回答
1

至于不同的部分,这一切都取决于重用或可读性。正确命名的部分还可以帮助解释出于维护原因而发生的事情,尤其是在没有评论的情况下。

案例声明使它更具可读性。但这只是一种意见。

case outcome.label
when "Won", "Lost", "Draw"
  %td=outcome.odds
end
于 2013-02-22T21:27:34.863 回答