2013-03-21 47 views
1

在我的Rails应用程序中,我需要在该用户所创建的用户控制面板的帖子上显示。某个用户的显示帖子

仪表板控制器:

class DashboardController < ApplicationController 

    def index 
    @users = User.all 
    @user = User.find(params[:id])||current_user 
    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @posts } 
    end 
    end 

    def show 
    @user = User.find(params[:id]) 
    @post = Post.all(:order => "created_at DESC") 

    respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @user } 
    end 
    end 

end 

我的主页 '显示视图'

<div class="dash-well"> 
    <div class="gravatar-dashboard"> 
     <%= image_tag avatar_url(@user), :class => 'gravatar-pos-fix gr-dash-mar-top' %> 
     <h1 class="nuvo wtxt"><%= @user.username.capitalize %></h1> 
     <h3 class="nuvo wtxt"><%= @user.motto %></h3> 
    </div> 
</div> 

<div class="dash-well-status"> 
<% @post.each do |post| %> 
    <div class="post"> 
     <div class="tstamp"> 
     <%= image_tag avatar_url_small(post.user), :class => 'gravatar' %> 
     <strong>Posted <%= time_ago_in_words(post.created_at) %> ago by <%= post.user.username %></strong> 
     </div> 
     <div class="status"><%= post.status %></div> 
    </div> 
<% end %> 
</div> 

和我的仪表盘型号:

class Dashboard < ActiveRecord::Base 
    attr_accessible :status, :author, :email, :username, :id, :user_id, :user, :website, :bio, :skype, :dob, :age 

    has_many :posts 
    belongs_to :user 
end 

因此,没有人知道我怎么可能只显示来自用户仪表板的帖子(用户仪表板可以从任何用户访问,所以current_user不会工作!)

+0

用户和帖子之间是否有任何关系? – 2013-03-21 18:17:42

+0

@SagarBommidi用户has_many:帖子和帖子belongs_to:用户 – coreypizzle 2013-03-21 18:20:12

+0

我想你的帖子有'user_id'这个栏目,为什么不用它来代替'Post.all()'? – Gerep 2013-03-21 18:20:24

回答

3
def show 
    @user = User.find(params[:id]) 
    @posts = @user.posts 

    #..... 
end 

这将只显示该特定用户的帖子。

+0

显示'未定义的方法每个' – coreypizzle 2013-03-21 18:27:36

+0

这里在我的代码中,它是** @职位**和形式它** **职位**。这是原因吗?检查一次... – 2013-03-21 18:29:17

+0

哦,对,谢谢你!投票! – coreypizzle 2013-03-21 18:31:07

相关问题