В настоящее время у меня есть полная функциональность при отображении кнопки Follow/unfollow для одного пользователя. Я могу отслеживать и отменить подписку на любого пользователя.Следуйте действиям для всех экземпляров объекта
Однако при отображении списка всех пользователей и отображении кнопки Follow/Unfollow на каждом.
Когда я нажимаю дальше, я получаю.
я получаю неопределенную локальную переменную или метод `следующий» для # < #: 0x007fa8a9b4f448> на второй линии от _unfollow.html.erb - на фотографии ниже для полной ошибки
Я проходящее в переменной, когда я делаю частичное.
<%= render 'follow_aud_form', :following => following if signed_in? %>
Я также могу проверить «следующее» и посмотреть данные экземпляра.
После нажатия кнопки, когда я вернусь, он на самом деле следовать/unfollows выбранного пользователя, однако он генерирует ошибку первого
См ниже код
users_controller
def following
@title = "Following"
@user = User.find(params[:id])
@users = @user.followed_users
render 'show_follow'
end
def followers
@title = "Followers"
@user = User.find(params[:id])
@users = @user.followers
render 'show_follow'
end
show_follow.html.erb
<% @users.each do |following|%>
<div class="span1">
<%= render 'follow_aud_form', :following => following if signed_in? %>
</div>
<% end %>
follow_aud_form
<div id="follow_form">
<% if current_user.following?(following) %>
<%= render 'unfollow', :following => following %>
<% else %>
<%= render 'follow', :following => following %>
<% end %>
</div>
_follow_html
|__<%= @gaza_id = following.id %>__|
<%= form_for(current_user.relationships.build(followed_id: @gaza_id)) do |f| %>
<div><%= f.hidden_field :followed_id %></div>
<%= f.submit "Follow",:type => :image, :src => "/assets/follow.png" %>
<% end %>
_unfollow.html
|__<%= @slim_id = following.id %>__|
<%= form_for(current_user.relationships.find_by_followed_id(@slim_id),
html: { method: :delete }) do |f| %>
<%#= f.submit "Unfollow", class: "btn btn-large" %>
<%= f.submit "Unfollow",:type => :image, :src => "/assets/following.png" %>
<% end %>
Я также просматривали Users list with follow/unfollow button
Пожалуйста, проверьте (и сообщите нам) линию, в которой возникла ошибка. Кажется, что должно быть где-то, где вы делаете some_obj.следующий (возможно, следующий? Метод внутри класса User). Пожалуйста, предоставьте логику внутри этого метода, чтобы я мог проверить. –
Я часто сталкиваюсь с проблемами самостоятельно, когда я явно не использую параметр «шаблон» в моих вызовах рендеринга, может быть полезно указать полный путь и использовать блок «locals». Например, попробуйте изменить '<% = render 'follow_aud_form',: следующее => следующее, если signed_in? %> 'to' <% = render: template => 'some_controller/follow_aud_form',: locals => {: follow => follow} if signed_in?%> ' – Noz
@ RafaelMartinez Добавить номер строки и фото – RedRory