私はレールに慣れていないので、ヘッダーにリンクを作成してプロファイルにサインイン/サインアウトしようとしています。次のコード、特に太字 (**) の領域の問題ではありません。
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a href="#" class="brand"> Test App</a>
<ul class="nav">
<li><%= link_to "All Statuses", statuses_path %></li>
</ul>
<ul class="nav pull-right">
**<li><%= link_to current_user.full_name, "#" %></li>**
</ul>
</div>
</div>
</div>
<div class="container">
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</div>
次のようなエラーが表示され続けます。
ステータスの NoMethodError#index
18 行目が発生した /Users/test_app/app/views/layouts/application.html.erb を表示:
nil:NilClass の undefined method `full_name' 抽出されたソース (18 行目付近):
<li><%= link_to "All Statuses", statuses_path %></li>
</ul>
<ul class="nav pull-right">
<li><%= link_to current_user.full_name, "#" %></li>
</ul>
</div>
ステータス コントローラのコードは次のとおりです。
class StatusesController < ApplicationController
# GET /statuses
# GET /statuses.json
def index
@statuses = Status.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @statuses }
end
end
# GET /statuses/1
# GET /statuses/1.json
def show
@status = Status.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @status }
end
end
# GET /statuses/new
# GET /statuses/new.json
def new
@status = Status.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @status }
end
end
# GET /statuses/1/edit
def edit
@status = Status.find(params[:id])
end
# POST /statuses
# POST /statuses.json
def create
@status = Status.new(params[:status])
respond_to do |format|
if @status.save
format.html { redirect_to @status, notice: 'Status was successfully created.' }
format.json { render json: @status, status: :created, location: @status }
else
format.html { render action: "new" }
format.json { render json: @status.errors, status: :unprocessable_entity }
end
end
end
# PUT /statuses/1
# PUT /statuses/1.json
def update
@status = Status.find(params[:id])
respond_to do |format|
if @status.update_attributes(params[:status])
format.html { redirect_to @status, notice: 'Status was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @status.errors, status: :unprocessable_entity }
end
end
end
# DELETE /statuses/1
# DELETE /statuses/1.json
def destroy
@status = Status.find(params[:id])
@status.destroy
respond_to do |format|
format.html { redirect_to statuses_url }
format.json { head :no_content }
end
end
end