11.2 show microposts.

1. add test to test the new users/show view:

 

describe UsersController do
  render_views
  .
  describe "GET 'show'" do

    before(:each) do
      @user = Factory(:user)
    end
    . .
    it "should show the user's microposts" do
      mp1 = Factory(:micropost, :user => @user, :content => "Foo bar")
      mp2 = Factory(:micropost, :user => @user, :content => "Baz quux")
      get :show, :id => @user
      response.should have_selector("span.content", :content => mp1.content)
      response.should have_selector("span.content", :content => mp2.content)
    end
  end
  .
end

 2. then work on the show page:

 

<table class="profile">
  <tr>
    <td class="main">
      .
      .
      .
      <% unless @user.microposts.empty? %>
        <table class="microposts" summary="User microposts">
          <%= render @microposts %>
        </table>
        <%= will_paginate @microposts %>
      <% end %>
    </td>
    <td class="sidebar round">
      <strong>Name</strong> <%= @user.name %><br />
      <strong>URL</strong> <%= link_to user_path(@user), @user %><br />
      <strong>Microposts</strong> <%= @user.microposts.count %>
    </td>
  </tr>
</table>

note, we add a argument to will_paginate method.

because we are in users controller, so if the argument is @users, it can be omitted.

but this time, the argument is @microposts, so we need to specify it clearly. 

 

3. then we need to add a _micropost.html.erb partial to views/microposts dir.

 

<tr>
	<td class="micropost">
		<span class="content"><%= micropost.content %></span>
		<span class="timestamp">
			Posted <%= time_ago_in_words(micropost.created_at) %> ago.
		</span>
</tr>
 

5. we still need to add 

 

@microposts = @user.microposts.paginate(:page => params[:page])

this will return a WillPaginate::Collection......

 

6. then we need to add some sample data to see the effect of our working.

 

    50.times do 
      User.all(:limit => 6).each do |user|
        user.microposts.create!(:content => Faker::Lorem.sentence(5))
      end
    end
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值