Rails: Создание микропоста -шоу пользователя на другой модели

StackOverflow https://stackoverflow.com/questions/9306418

Вопрос

У меня есть пользовательская модель, которая может публиковать микроблогы, и она отображается на странице Пользовательского шоу, но мне было интересно, как я смогу показать, что пользовательские микроблогги на модели, к которому принадлежит пользователь, в этом случае в школе. Пользователи принадлежат к конкретным школам, а в школах есть много пользователей. Все помогает очень ценить!

Пользовательская страница

<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 %>

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top