Rails:別のモデルでユーザーのマイクロポストショーを作成する
-
25-10-2019 - |
質問
マイクロブログを投稿できるユーザーモデルがあり、ユーザーショーページに表示されますが、ユーザーがマイクロブログを作成して、この場合は学校に属しているモデルにマイクロブログを作成したことをどのように表示できるのだろうと思っていました。ユーザーは特定の学校に属し、学校には多くのユーザーがいます。すべてが高く評価されています!
ユーザーショーページ
<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
解決
振り返ってください 部分的 あなたがまだ苦労しているなら、さらに読む前に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 %>
所属していません StackOverflow