неопределенная локальная переменная или метод `nominations_data ' - PullRequest
0 голосов
/ 27 июня 2018

В настоящее время не удается передать информацию от контроллера циклов в cycle_nominees_table.html.erb с использованием партиалов.

Данные определены в моем методе show controller. А у метода show есть информация в @nominations_data и @ nominations_team_data.

Почему мой _cycles_nominations_table.html.erb не может получить доступ к nominations_data, которые передаются в партиал?

Я использовал эту ссылку для направления.

Код ниже:

приложение / контроллеры / cycles_controller.rb

 def show
...

    @nominations_data = {}
    @nominations.each do |nomination|
      @nominations_data[nomination.for_user_id] ||= {}
      @nominations_data[nomination.for_user_id][:nominee] ||= nomination.for_user
      if user_is_admin
        @nominations_data[nomination.for_user_id][:nominations] ||= []
        @nominations_data[nomination.for_user_id][:nominations].push nomination
      end
      if user_is_admin_or_reviewer
        @nominations_data[nomination.for_user_id][:count] ||= 0
        @nominations_data[nomination.for_user_id][:count] += 1
      end
    end
    @nominations_data = @nominations_data.sort_by { |_nid, nomination| nomination[:nominee].name }

    @nominations_team_data = {}
    @team_nominations.each do |nomination|
      @nominations_team_data[nomination.for_user_id] ||= {}
      @nominations_team_data[nomination.for_user_id][:nominee] ||= nomination.for_user
      if user_is_admin
        @nominations_team_data[nomination.for_user_id][:nominations] ||= []
        @nominations_team_data[nomination.for_user_id][:nominations].push nomination
      end
      if user_is_admin_or_reviewer
        @nominations_team_data[nomination.for_user_id][:count] ||= 0
        @nominations_team_data[nomination.for_user_id][:count] += 1
      end
    end
    @nominations_team_data = @nominations_team_data.sort_by { |_nid, nomination| nomination[:nominee].name }

end

приложение / просмотров / циклы / show.html.erb

          <div class="container-float-right-small" id="cycle-nominees-section">
            <h2 class="inline">Nominees for <%= @cycle.name %></h2>
            <h4 class="inline"> - (<%= @cycle.votes_per_reviewer %> votes allowed)</h4>
        <h5> Indivdual Nominees: </h5>
<!--        <%= render "cycles/cycle_nominees_table" %>-->
    <%= render partial: "cycles/cycle_nominees_table", locals: { nominations_data: @nominations_data } %>
        <h5> Team Nominees: </h5>
<!--        <%= render "cycles/cycle_nominees_table" %>-->
        <%= render partial: "cycles/cycle_nominees_table", locals: { nominations_data: @nominations_team_data } %>
          </div>

приложение / просмотров / циклы / _cycle_nominees_table.html.erb

  <% if nominations_data.empty? %>
      <th class="center" colspan="4"><h3>There are no nominees <%= "for cycle '#{@cycle.name}'" if @cycle %></th>
    <% end %>
  </thead>

  <tbody>
    <% nominations_data.each do |nid, data| %>
      <tr id='<%= "nominee-row-#{nid}" %>' class="nominee-row">
        <% if user_is_reviewer && @cycle.voting_open %>
          <td class="center">
            <% nomination_icon_class = "voted_for" if Vote.where(cycle_id: @cycle.id, by_user_id: current_user.id, for_user_id: data[:nominee].id).count > 0 %>
            <span class="glyphicon glyphicon-check pointer <%= nomination_icon_class %>" id=<%= "vote_for_nominee_#{nid}" %> onclick="<%= "Vote.send_vote_data(this, #{data[:nominee].id}, #{@cycle.id})" %>"></span>
          </td>
        <% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...