Rails: micropost show di utente che effettua su un altro modello
-
25-10-2019 - |
Domanda
Ho un modello per l'utente che può postare microblog e si vede sulla pagina spettacolo utente, ma mi chiedevo come sarei stato in grado di mostrare l'utente ha effettuato microblog su un modello che appartiene l'utente per esempio in questo caso una scuola. Gli utenti appartengono a scuole specifiche e le scuole hanno molti utenti sotto di loro. Tutto l'aiuto molto apprezzato!
Utente Mostra pagina
<div id="MicropostBody">
<div>
<% if @user.microposts.any? %>
<table class="microposts">
<%= render @microposts %>
</table>
<%= will_paginate @microposts %>
<% end %>
</div>
</div>
Scuola Mostra pagina Stessa cosa?
<div id="MicropostBody">
<div>
<% if @user.microposts.any? %>
<table class="microposts">
<%= render @microposts %>
</table>
<%= will_paginate @microposts %>
<% end %>
</div>
</div>
dell'utente del controller
def show
@user = User.find(params[:id])
@school = School.find(params[:id])
@micropost = Micropost.new
@microposts = @user.microposts.paginate(page: params[:page])
end
Scuola controller Stessa cosa ??
def show
@user = User.find(params[:id])
@school = School.find(params[:id])
@micropost = Micropost.new
@microposts = @user.microposts.paginate(page: params[:page])
end
nuovo controller scuola
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
Soluzione
Date di nuovo un'occhiata alla parziali sezione delle rotaie tutorial di prenotare prima di leggere oltre, se si sta ancora lottando.
users/_microposts.html.erb
<div id="MicropostBody">
<div>
<% if microposts.any? %>
<table class="microposts">
<%= render microposts %>
</table>
<%= will_paginate microposts %>
<% end %>
</div>
</div>
Poi in entrambe le visualizzazioni è possibile utilizzare:
<%= render 'users/microposts', :microposts => @microposts %>