Метод работает в Rails Console - в представлении выдает ошибку - PullRequest
0 голосов
/ 29 апреля 2020

Любая помощь будет наиболее ценной.

Это работает в консоли rails

@user1 = User.first
@user2 = User.last
@user1.follow.@user2

Friendship Create (0.4ms)  INSERT INTO "friendships" ("follower_id", "followed_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["follower_id", 1], ["followed_id", 2], ["created_at", "2020-04-29 17:07:59.048027"], ["updated_at", "2020-04-29 17:07:59.048027"]]

Помещение в представление бросков:

NoMethodError в FriendshipsController # создать неопределенный метод `follow 'для 2: Целое число

  • Я попытался скопировать следующий метод в контроллер дружбы, но это не имело значения.

FriendshipsController

class FriendshipsController < ApplicationController
  def create
    @u = current_user.id
    @u.follow(find_user.to_i)
    redirect_to :back, notice: 'Followed User.'
  end

  private
    def find_user
      params.require(:uid)
    end
end

дружба.rb

class Friendship < ApplicationRecord
    belongs_to :follower, class_name: 'User'
    belongs_to :followed, class_name: 'User'

    validates :follower_id, presence: true
    validates :followed_id, presence: true
end

user.rb

class User < ApplicationRecord
  has_many :active_friendships, class_name: 'Friendship', foreign_key: 'follower_id', dependent: :destroy
  has_many :passive_friendships, class_name: 'Friendship', foreign_key: 'followed_id', dependent: :destroy
  has_many :following, through: :active_friendships, source: :followed
  has_many :followers, through: :passive_friendships, source: :follower

  def follow(user)
    active_friendships.create(followed_id: user.id)
  end

  def unfollow(user)
    active_friendships.find_by(followed_id: user.id).destroy
  end

  def following?(user)
    following.include?(user)
  end
end

разметка для создания друга req

<%= button_to 'Unfollow', friendships_path(uid: @user), method: :delete, data: { confirm: 'Are you sure?' }  %>

Я следовал этому уроку https://www.youtube.com/watch?v=8DwSxhgArFI

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