Как я могу обработать гем has_friendship в моем приложении? - PullRequest
0 голосов
/ 29 мая 2018

Я новичок в рельсах и хочу, чтобы мои пользователи могли дружить друг с другом, поэтому я нашел драгоценный камень has_friendship github: has_friendship .Я выполнил инструкции и все проверил в консоли rails c.И все работало нормально.Но теперь я немного запутался, как обращаться с этим в моем приложении и как интегрировать его в мое приложение.Нужен ли мне дополнительный контроллер дружбы / модель / представление или где я могу определить методы, такие как @user1.friend_request(@user2) и как мне получить идентификатор пользователя user2?

Большое спасибо!

Например, обновите

: я думал об отображении каждого пользователя в моем пользовательском index.html.erb со ссылкой.Но как я могу вызвать метод friend_request, нажав эту ссылку?

<% @users.each do |user| %> <h1><%= user.username %> <%= link_to "Add Friend", user_add_friend_path(:user_id) %></h1> <%end%>

я также отредактировал в моих маршрутах. Rb

  resources :users do
    get 'add_friend'
  end

исделал метод в моем users_controller.rb

  def add_friend
    if current_user.friend_request(@friend)
      redirect_to users_path, notice: "Friend request successfully sent."
    else
      redirect_to users_path, notice: "There was an error sending the friend request"
    end
  end

, теперь я получаю ошибку noMethod, потому что я еще не определил @friend.Но как мне получить пользователя, с которым я хочу подружиться?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Круто - звучит как забавная жемчужина!Похоже, что после запуска генератора has_friendship вам нужно запустить миграцию, которая изменит ваши таблицы схемы, и вам нужно будет добавить has_friendship к вашей User модели.Если вы сможете поделиться еще одним кодом, людям будет проще предложить помощь.

0 голосов
/ 29 мая 2018

Вам не нужна никакая другая модель, только пользователь, самоцвет создает модель дружбы

Просто отправьте has_friendship пользователю модели:

class User <ActiveRecord :: Base
   has_friendship
end

Методы:

# @mac sends a friend request to @dee
@ mac.friend_request (@dee)

# @dee can accept the friend request
@ dee.accept_request (@mac)

# @dee can also decline the friend request
@ dee.decline_request (@mac)

# @dee removes @mac from its friends
@ dee.remove_friend (@mac)

Они генерируются самоцветом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...