я пытаюсь добавить актеров в мое приложение, чтобы пользователь мог следить за другими пользователями, и на странице индекса твитов отображаются только твиты текущих пользователей и твиты тех, за кем они следят.В настоящее время у меня есть кнопка «подписаться» на странице показа пользователя, но я ожидаю, что она изменится на «подписку», но ничего не изменится.Я посмотрел на другие вопросы и документацию, но не повезло.спасибо.
Пользователи показывают представление:
<% if current_user.following?(@user) %>
<%= button_to "Following", {action: "unfollow", id: @user.id}, method: "post", class: "btn btn-secondary btn_unfollow", remote: true %>
<% else current_user != @user %>
<%= button_to "Follow", {action: "follow", id: @user.id}, method: "post", class: "btn btn-primary btn_follow", remote: true %>
<% end %>
Пользователи контроллер:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@tweets = @user.tweets.order('created_at DESC')
authorize @user
end
def follow
@current_user.follow(@user)
@follow = Follow.find_by(follower: @current_user, followable: @user)
# @user = User.find(params[:id])
# current_user.follow(@user)
# current_user.follow(@user)
# redirect to user_path(@user)
# respond_to :js
end
def unfollow
@user = User.find(params[:id])
@current_user.stop_following(@user)
# current_user.stop_following(@user)
# redirect_to user_path(@user)
# respond_to :js
end
end
Маршруты:
resources :users do
member do
get :follow
get :unfollow
end
end