Rails: отображение пользовательского микросообщения на другой модели - PullRequest
0 голосов
/ 16 февраля 2012

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

Страница пользователя

<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

New School Controller

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

1 Ответ

1 голос
/ 16 февраля 2012

Взгляните на раздел partials учебного пособия по 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 %>

...