52619


以下の処理を行いたいのですが、なぜか <%= @value[:R] %> のような一部のハッシュの数値が取り出せなくて困っています。

@valueに入る数値によって、ハッシュの数値が取り出せたり、取り出せなかったりする部分が変化しますが、大体三つのハッシュの数値しか取り出せません。

どうすれば、すべての <%= @value[:R] %> のような部分の数値を取り出せるようになるでしょうか？

ここからビュー↓

[code]

             <div class="row">
      <div class="col-md-6 col-md-offset-3">
        <table class="table">
    
          <tr>
            <td>R</td>
            <td><%= @value[:R] %></td>
          </tr>
    
          <tr>
            <td>I</td>
            <td><%= @value[:I] %></td>
          </tr>
    
          <tr>
            <td>A</td>
            <td><%= @value[:A] %></td>
          </tr>
    
          <tr>
            <td>S</td>
            <td><%=  @value[:S]  %></td>
          </tr>
    
          <tr>
            <td>E</td>
            <td><%=  @value[:E]  %></td>
          </tr>
    
          <tr>
            <td>C</td>
            <td><%=  @value[:C]  %></td>
          </tr>
    
        </table>
      </div>
      </div>
    
      <div class="row">
        <div class="col-md-6 col-md-offset-3">
          <table class="table">
            <tr>
              <td>
                <%= @value_add1[:word1] %>
                <%= @value_add2[:word2] %>
                <%= @value_add3[:word3] %>
              </td>
            </tr>
          </table>
        </div>
        </div>
    
[/code]

ここからコントローラー↓

[code]

        class UsersController < ApplicationController
    
      def show
        @user = User.find(params[:id])
    
        @value = {
                        R: @user.r1 + @user.r2 + @user.r3 + @user.r4 + @user.r5 + @user.r6,
                        I: @user.i1 + @user.i2 + @user.i3 + @user.i4 + @user.i4 + @user.i6,
                        A: @user.a1 + @user.a2 + @user.a3 + @user.a4 + @user.a5 + @user.a6,
                        S: @user.s1 + @user.s2 + @user.s3 + @user.s4 + @user.s5 + @user.s6,
                        E: @user.e1 + @user.e2 + @user.e3 + @user.e4 + @user.e5 + @user.e6,
                        C: @user.c1 + @user.c2 + @user.c3 + @user.c4 + @user.c5 + @user.c6 }
    
        @value_add1 = {first: @value.values.max, word1: @value.key(@value.values.max)}
        @value.delete(@value.key(@value.values.max))
    
        @value_add2 = {second: @value.values.max, word2: @value.key(@value.values.max)}
        @value.delete(@value.key(@value.values.max))
    
        @value_add3 = {thrid: @value.values.max, word3: @value.key(@value.values.max)}
        @value.delete(@value.key(@value.values.max))
    
      end
    
      def new
        @user = User.new
      end
    
      def create
       @user = User.new(user_params)
       if @user.save
         redirect_to @user
       else
         render 'new'
       end
     end
    
     private
    
      def user_params
        params.require(:user).permit(
           :r1, :i1, :a1, :s1, :e1, :c1,
           :r2, :i2, :a2, :s2, :e2, :c2,
           :r3, :i3, :a3, :s3, :e3, :c3,
           :r4, :i4, :a4, :s4, :e4, :c4,
           :r5, :i5, :a5, :s5, :e5, :c5,
           :r6, :i6, :a6, :s6, :e6, :c6 )
      end
    end
    
[/code]


CC BY-SA 4.0
2019-02-07T02:50:20.307
52616
2019-02-07T04:08:54.050
32075
question
ruby-on-rails ruby
ハッシュの数値を表に取り出したい


@value.delete でハッシュのエントリを削除しているからだと思います。それらをコメントアウトなり削除なりすれば、view で表示されると思います。


CC BY-SA 4.0
2019-02-07T04:08:54.050
52619
2019-02-07T04:08:54.050
754
52616
answer