【问题标题】:which code I should put into a partal in rails我应该将哪个代码放入rails中
【发布时间】:2013-02-22 12:34:36
【问题描述】:

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

现在,如果我的 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)

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

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

【问题讨论】:

  • 我不知道你的if outcome.label ==

标签: ruby-on-rails ruby ruby-on-rails-3.2 haml partial-views


【解决方案1】:

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

我还看到了多个 IF,有点混乱。

你可以这样做

- if (["Won","Lost","Draw"].include? outcome.label)
    %td=outcome.odds 

【讨论】:

    【解决方案2】:

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

    Case 语句使其更具可读性。但这只是一种意见。

    case outcome.label
    when "Won", "Lost", "Draw"
      %td=outcome.odds
    end
    

    【讨论】:

      猜你喜欢
      • 2010-10-24
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 2014-02-27
      • 1970-01-01
      相关资源
      最近更新 更多