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>