ruby-on-rails - 未定义的局部变量或方法“nominations_data”
问题描述
目前无法使用部分将信息从周期控制器传递到 cycle_nominees_table.html.erb。
数据在我的控制器显示方法中定义。show 方法在@nominations_data 和@nominations_team_data 中有信息。
为什么我的 _cycles_nominations_table.html.erb 不能访问被传递到部分的提名数据?
我一直在使用此链接进行指导。
下面的代码:
应用程序/控制器/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
app/views/cycles/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>
app/views/cycles/_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 %>
解决方案
推荐阅读
- firebase - 如何在firebase中实现这个.htaccess?
- flutter - 当我们并行运行测试时,使用全局顶级变量有什么副作用吗?
- python - NoReverseMatch at ...... in django
- php - localhost 将您重定向了太多次。拉拉维尔
- java - 有没有办法在 swagger-ui 中显示我的 Maven 依赖项中存在的端点
- java - 重新安装字体后 Jasper iReport 3.0.0 字体丢失
- angular - 在 Angular 中使用 http get 和 body
- octobercms - 如何限制octobercms中的内容块
- javascript - ASP.NET Bundling and Minification 删除未使用的 javascript 函数声明
- python - 如何将for循环转换为python中并行处理的函数?