У меня есть приложение, в котором пользователи могут создавать профили, посещать события и комментировать события. Проблема, с которой я сталкиваюсь, например: когда пользователь A отправляет комментарий, а пользователь B отправляет комментарий, оба пользователя имеют профиль пользователя user_image рядом с их соответствующим комментарием.только показывает profile_image для первого пользователя в db?
Вот код, чтобы помочь мне это ясный:
events_controller.rb Snippit
def create
@event = current_user.events.new(event_params)
respond_to do |format|
if @event.save
format.html { redirect_to :back, notice: 'Event was successfully created.' }
format.json { render action: 'show', status: :created, location: @event }
format.js
else
format.html { render action: 'new' }
format.json { render json: @event.errors, status: :unprocessable_entity }
format.js
end
end
end
def show
@event = Event.find(params[:id])
@commentable = @event
@user = User.find(params[:id])
@comment = @event.comments.new
end
_comment.html.erb (частично вынесенного в событии/show.html)
<div class="comment">
<%= simple_user_avatar(@user) %> <%= comment.user.name %> (<small><%= time_ago_in_words(comment.created_at) + " ago" %></small>):<br /><br />
<div><%= simple_format comment.body %></div>
</div>
simple_user_avatar вспомогательный метод в helpe rs.rb
def simple_user_avatar(user)
if user.profile_image.present?
html = link_to (image_tag user.profile_image_url(:small).to_s), user
else
html = link_to (image_tag "profile-placeholder1.png", size: '50x50'), user
end
return html
end
Что я делаю неправильно? и как я могу это сделать, так как рядом с комментарием каждого пользователя отображается их собственный профиль profile_image, и не каждый пользователь, который публикует комментарий, имеет профиль пользователя User_image рядом с их комментарием.
Вы получаете аватар '@ user', который является пользователем события. Я думаю, вам нужно использовать 'simple_user_avatar (comment.user)', чтобы прокомментировать профиль пользователей. – Thanh
Правильно, спасибо большое @KienThanh –