我有一个,用户可以登录并查看他们自己的配置文件,并在表单中键入他们的状态。用户键入的内容现在只能通过说"他的朋友"来查看,还没有处理,但"他的朋友们"看不到。例如,我运行了up,在没有登录的情况下,我进入了用户的个人资料,在没有我登录的情况下,应用程序会显示用户键入的状态,这时我就会收到错误:nil:NilClass 的未定义方法"content"
这是我的用户控制器:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@microsposts = @user.microsposts.paginate(:page => params[:page])
end
def create
@microspost = current_user.microsposts.build(params[:microspost])
if @microspost.save
flash[:success] = "Micropost created!"
redirect_to current_user
else
render 'home/index'
end
end
end
_micropost.html.erb:
<%= microspost.content %>
_micropost_form.html.erb:
<%= form_for @microspost do |f| %>
<!--<render 'error_messages', :object => f.object %>-->
<div class="field">
<%= f.text_area :content %>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
我被这个卡住了,我很沮丧,我每天都在开发一个应用程序,从不到凌晨4点,现在我必须提前45分钟停止,因为我无法继续调试它,已经2个小时了。
我很感激大家的帮助。。。。
这是show.html的一部分:
<% unless @user.microsposts.empty? %>
<table class="microposts" summary= "User microposts">
<%= render 'microspost' %>
</table>
<!--will_paginate @microsposts %>-->
<% end %>
<td class="sidebar round">
<strong>Name:</strong> <%= @user.username %><br />
<strong>URL:</strong> <%= link_to user_path(@user), @user %><br />
<strong>Microposts:</strong><%= @user.microsposts.count %>
</td>
<% if signed_in? %>
<table class = "front" summary="For signed in users">
<tr>
<td class="main">
<h1 class="micropost">What you doin?</h1>
<%= render 'microspost_form' %>
</td>
<td class ="sidebar round">
<%= render 'user_info' %>
</td>
</tr>
</table>
<% else %>
<h1>testing test</h1>
<% end %>
尝试用替换<%= render 'microspost' %>
-
如果
@user.microsposts
是类Micropost
的对象,则为<%= @user.microsposts %>
-
<%= render :partial => 'microspost', :object => @user.microsposts %>
否则