1)Rails controller
$ vi app/controllers/sessions_controller.rb
def current_user
remember_token = User.encrypt(cookies[:remember_token])
current_user ||= User.find_by(remember_token: remember_token)
if current_user
gravatar_id = Digest::MD5::hexdigest(current_user.email.downcase)
conn = ActiveRecord::Base.connection
sql = "SELECT microposts.*,users.name,users.email " +
"FROM microposts,users " +
"WHERE (user_id IN (" +
"SELECT followed_id FROM relationships WHERE follower_id = " +
current_user.id.to_s + " )" +
"OR user_id = " + current_user.id.to_s + " ) " +
"AND microposts.user_id = users.id"
feed = conn.select_all(sql)
@user_info = {
user: current_user,
gravatar_url: "https://secure.gravatar.com/avatar/#{gravatar_id}",
microposts: current_user.microposts,
feed: feed,
followed_users: current_user.followed_users,
followers: current_user.followers
}
render json: @user_info, status: :accepted
else
head :no_content
end
end
2)AngularJS template view
$ vi app/assets/templates/static_pages/home.html.erb
<h3>Micropost Feed</h3>
<ol class="microposts">
<li ng-repeat="mp in currentitems">
<a href="/users/{{mp.user_id}}">
<img alt="{{mp.name}}"
src="https://secure.gravatar.com/avatar/{{hash(mp.email)}}?s=60"
class="gravatar"
/>
</a>
<a href="/users/{{mp.user_id}}">{{mp.name}}</a>
<div>{{mp.content}}</div>
<small class="text-muted">Posted {{mp.created_at | date:'medium'}}</small>
</li>
</ol>