Я пытаюсь показать "сообщения на стене", которые все пользователи сделали на странице определенного пользователя, но у меня возникают проблемы с отображением правильных сообщений.
Пользовательский контроллер:
def show
@user = User.find_by_cached_slug(params[:id])
@posts = Post.find_all_by_poster(params[@user.id])
if signed_in?
@post = Post.new
end
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
Почтовая форма:
<%= form_for @post do |f| %>
<div class="field">
<%= f.text_area :content %>
</div>
<div class="field">
<%= f.hidden_field :user_id, :value => current_user.id %>
</div>
<div class="field">
<%= f.hidden_field :poster, :value => @user.id %.
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
Когда пользователь создает сообщение, идентификатор current_user сохраняется в таблице сообщений как :user_id
, а идентификатор пользователя страницы пользователя, на которой он публикует, сохраняется как :poster
. Эта часть работает, но я не понимаю, как отобразить @posts
, чтобы отображались только сообщения, сделанные на странице этого пользователя.
Подход, который я пробую, как-то показывает / фильтрует? все сообщения, где :poster
соответствует идентификатору пользователя на странице пользователя; Тем не менее, я не знаю, как заставить это работать или есть ли лучший способ. Любая помощь?
Примечание: я использую драгоценный камень. В представлении Пользователи / шоу я использую <%= render @posts %>
. В конце концов, я бы хотел, чтобы пользователи могли комментировать посты, если это влияет на какие-либо дизайнерские решения.
Большое спасибо за вашу помощь! Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.