0

我有一个可以发布微博的用户模型,它显示在用户显示页面上,但我想知道如何将用户制作的微博显示到用户所属的模型上,例如在这种情况下是一所学校。用户属于特定学校,学校下有很多用户。非常感谢所有帮助!

用户展示页面

<div id="MicropostBody">
 <div>
 <% if @user.microposts.any? %>
    <table class="microposts">
      <%= render @microposts %>
    </table>
    <%= will_paginate @microposts %>
 <% end %>
 </div>
</div>

学校展示页面 同样的事情?

<div id="MicropostBody">
 <div>
 <% if @user.microposts.any? %>
    <table class="microposts">
      <%= render @microposts %>
    </table>
    <%= will_paginate @microposts %>
 <% end %>
 </div>
</div>

用户控制器

def show
  @user = User.find(params[:id])
  @school = School.find(params[:id])
  @micropost = Micropost.new
  @microposts = @user.microposts.paginate(page: params[:page])
end

学校控制器 同样的事情??

def show
  @user = User.find(params[:id])
  @school = School.find(params[:id])
  @micropost = Micropost.new
  @microposts = @user.microposts.paginate(page: params[:page])
end

新学校控制器

def show
  @school = School.find(params[:id])
  @user = User.new
  @micropost = Micropost.new
  @microposts = @school.microposts.paginate(page: params[:page])
  @micropost = current_school.microposts.build
end
4

1 回答 1

1

如果您仍在苦苦挣扎,请在继续阅读之前回顾一下 Rails 教程的部分部分。

users/_microposts.html.erb

<div id="MicropostBody">
  <div>
    <% if microposts.any? %>
      <table class="microposts">
        <%= render microposts %>
      </table>
      <%= will_paginate microposts %>
    <% end %>
  </div>
</div>

然后在两个视图中,您都可以使用:

<%= render 'users/microposts', :microposts => @microposts %>

于 2012-02-16T09:19:42.173 回答