我有一个可以发布微博的用户模型,它显示在用户显示页面上,但我想知道如何能够将用户制作的微博显示在用户所属的模型上,例如在这种情况下学校。用户属于特定学校,学校下有许多用户。所有人都非常感谢!
用户显示页面
<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
答案 0 :(得分:1)
如果您还在苦苦思索,请先阅读Rails教程书的partials部分,然后再继续阅读。
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 %>