Как настроить acts_as_follower - PullRequest
       1

Как настроить acts_as_follower

6 голосов
/ 30 декабря 2011

Я использую gem acts_as_follower в приложении rails.Я установил его, и он работает (в консоли), однако я не знаю, как настроить его в представлении.Я хочу, чтобы кнопка соответствовала методам user.follow и user.stop_following.

Github этого не объясняет.Помогите пожалуйста.

1 Ответ

11 голосов
/ 31 декабря 2011

Вы можете создавать действия контроллера, на которые вы ссылаетесь.Например, в приложении у меня есть следующие два действия, добавленные в пользовательский контроллер.Как только маршруты также настроены, я использую помощники URL, чтобы связать действия с моим представлением, и в конечном итоге отображаю флеш-сообщения с помощью обратных вызовов javascript.

UsersController:

def follow
  @user = User.find(params[:id])

  if current_user
    if current_user == @user
      flash[:error] = "You cannot follow yourself."
    else
      current_user.follow(@user)
      RecommenderMailer.new_follower(@user).deliver if @user.notify_new_follower
      flash[:notice] = "You are now following #{@user.monniker}."
    end
  else
    flash[:error] = "You must <a href='/users/sign_in'>login</a> to follow #{@user.monniker}.".html_safe
  end
end

def unfollow
  @user = User.find(params[:id])

  if current_user
    current_user.stop_following(@user)
    flash[:notice] = "You are no longer following #{@user.monniker}."
  else
    flash[:error] = "You must <a href='/users/sign_in'>login</a> to unfollow #{@user.monniker}.".html_safe
  end
end

config /route.rb:

resources :users do
  member do
    get :follow
    get :unfollow
  end
end

Затем, по вашему мнению, вы можете использовать помощник по URL для ссылки на действие контроллера:

<%= link_to "Unfollow", unfollow_user_path(@user) %>
...