1

すべてのキーとハッシュの値を出力するコードがあります。すべてのキーではなく、必要なキーのみを出力するように構成可能にします。キーk1、k2、k3...k20があるとします。そして、k1、k3、k8 .... k15、k18を印刷したいと思います。これについて行くための最良の方法は何ですか?

これは関連するコードスニペットです-:

   <%@order_items.each do |order_item|%>
        <h5>Order Item</h5>
        <%order_item.each do |key,value|%>

          <table cellspacing=2>

            <tr><td><%=key.capitalize%>: </td> <td><%= value %></td></tr>

          </table>
        <%end%>
      <%end%>
4

3 に答える 3

2

試す:

class Hash
  def select_keys(*args)
    select {|k,v| args.include?(k) }
  end
end

そして、あなたは呼び出すことができます:

h.select_keys(1,3,8,15,18)

また

あなたはただ使うことができます:

hash.slice(1,3,8,15,18)
 # => { '1' => 'value1', '3' => 'value2', '8' => 'value3', '15' => 'value4', '18' => 'value5' }
于 2013-03-01T10:11:20.527 に答える
2

そのようなもので:

<% order_item.select{|k,_| [1,3,8,15,18].include?(k)}.each do |key,value| %>
于 2013-03-01T09:52:22.553 に答える
2

あなたもこれを行うことができます

<% [1,3,8,15,18].each do |key|; value = order_item[key] %>
于 2013-03-01T10:01:04.610 に答える