【发布时间】:2012-05-15 21:33:10
【问题描述】:
我正在开发一个 on rails 3 项目,并尝试在用户个人资料页面上呈现部分内容。渲染对除照片之外的所有内容都适用。当我尝试访问用户个人资料页面时,出现以下错误
undefined methodmodel_name' 代表 NilClass:Class`
用户 show.html.erb
def show
@user= User.find(params[:id])
@photo = Photo.find_by_id(params[:id])
end
在配置文件 show.html.erb
<%= content_tag :h2, "My photos" %>
<% photo = @user.photos %>
<% if photo.blank? %>
<%= link_to 'Create photo', new_photo_path %>
<% else %>
<%= render :partial => 'photos/photo', :locals => {:photo => @photo} %>
<% end %>
这是它正在渲染的部分
<%= div_for photo do %>
<table>
<tr>
<th>Title</th>
<th>Date</th>
<th>Extra</th>
</tr>
<tr>
<td><%= photo.title %></td>
<td><%= photo.date %></td>
<td><%= photo.extra %></td>
<td><%= link_to 'View photos', photo %></td>
</tr>
</table>
<% end %>
关于如何摆脱此错误的任何想法或建议?提前致谢
【问题讨论】:
-
我认为
photo变量的单复数形式以及它们的实例和本地类型有点混乱。很难理解,你真正想做什么。但我可以说,最有可能出错的原因是<%= div_for photo do %>中的 nil photo 变量。
标签: ruby-on-rails ruby ruby-on-rails-3