当用户登录时尝试从facebook获取位置信息我收到此错误用户中的NoMethodError#show - 未定义方法`[]'表示nil:NilClass
IEWS /用户/ show.html.erb
<div class="container">
<div class="row">
<div class="col-lg-4">
<div class="media">
<%= image_tag @user.get_profile_picture, class: "pull-left" %>
<div class="media-body">
<h4 class="media-heading"><%= @user.name %></h4>
from <%= @user.get_location %>
</div>
<hr>
<div class="books">
<% @user.get_books.each do |book| %>
<p><%= book["name"] %></p>
<%end%>
</div>
</div>
<div class="col-lg-6">
<%= @user.posts.order("created_at DESC").each do |post| %><div class="post">
<h5><%= post.title %></h5>
<p><%= post.content %></p>
<span class="pull-right label label-info"><%=time_ago_in_words(post.created_at) %> ago</span>
<% if post.user == current_user %>
<span class="pull-left"><%= link_to 'edit', edit_post_path(post), class: "btn btn-xs btn-primary" %> | <%= link_to 'destroy', post, method: :delete, data: {confirm: 'Are you sure?'}, class: "btn btn-xs btn-danger" %></span>
<% end %>
</div>
<% end %>
</div>
</div>
</div>
user.rb文件
def facebook
@facebook ||= Koala::Facebook::API.new(oauth_token)
end
def get_profile_info
self.facebook.get_object("me")
end
def get_location
h = get_profile_info["location"]
h['name']
end
def get_books
self.facebook.get_connection("me", "books")
end
def get_profile_picture
self.facebook.get_picture(uid)
end
这是users_controller.rb
class UsersController < ApplicationController
before_action :set_user, only: [:show]
def index
@users = User.all
end
def show
end
private
def set_user
@user = User.find(params[:id])
end
end