我一直在阅读http://guides.rubyonrails.org/layouts_and_rendering.html#using-render并尝试了所有不同的部分选项,但无济于事。
我与trouble_tickets
控制器进行了Client
操作,就像这样(简化):
def trouble_tickets
@query = Client.get_job_count
respond_to do |format|
format.html
end
end
get_job_count
在我的Client
模型中定义:
def self.get_job_count
find_by_sql("my sql query here that returns some data");
end
在app/views/pages
我有一个dashboard.html.erb
文件执行以下操作:
<%= render partial: "clients/trouble_tickets", object: @query %>
然后在_trouble_tickets.html.erb
(app/views/clients
内)我有:
<% @query.each do |item| %>
<tr>
<td><%= item.attributes['Job Code'] %></td>
<td><%= item.attributes['Percentage'].round(2) %>%</td>
</tr>
<% end %>
加载/dashboard
时,收到错误消息:
undefined method
各&#39;为零:NilClass`
为什么会这样?我没有正确使用部分渲染中的object
属性吗?
注意:我在@query
的普通视图中尝试了此trouble_tickets.html.erb
次迭代,可以很好地查看数据。
任何输入都表示赞赏。
答案 0 :(得分:2)
部分:
<%= render partial: "clients/trouble_tickets", locals: {query_objects: @query} %>
循环:
<% query_objects.each do |item| %>
<tr>
<td><%= item.attributes['Job Code'] %></td>
<td><%= item.attributes['Percentage'].round(2) %>%</td>
</tr>
<% end %>