Ruby on 2.3.8에서 작업 중이며 사용자를 따라갈 수있는 기능을 만들고 싶습니다. 각각의 모델, 사용자 및 다음 :사용자 로직을 따름
이를 위해, 나는 2 개 테이블을 만든
class User < ActiveRecord::Base
has_and_belongs_to_many :followings, :foreign_key => "follower_id"
end
class Following < ActiveRecord::Base
has_and_belongs_to_many :users, :foreign_key => "follower_id", :class_name => "User"
end
을 지금, 나는이 유효한 CURRENT_USER와 (current_user.followings.all
을 실행하려고 할 때의 코스), 그것은 나를 다음과 같은 예외를 throw합니다 :
'followings_users' doesn't exist: SELECT 'followings'.* FROM `followings` INNER JOIN 'followings_users' ON 'followings'.id = 'followings_users'.following_id WHERE ('followings_users'.follower_id = 1)
나는이 작업을 수행 할 수 없습니다. 내가 왜 "follows_users"테이블을 요구하는지 모르겠다. 내가 단지 "팔로 잉"이라고 부르기를 원한다면?
내가 뭘 잘못하고 있니?
나를 위해 최선의 선택은 각각 following_user와 following_users에 대한 모델과 테이블 이름을 변경하는 것입니다. –
당신이 할 일은': join_table' 옵션을 추가하는 것뿐입니다. 종래의 명명법을 사용하지 않을 경우,이 옵션을 사용하여 조인 테이블 이름을 지정할 수 있습니다. –
어떤 모델을 선택해야합니까? 해야 할 것 : join_table => 'followings'? 왜냐하면 나는 그것을 User와 Following 모델 모두에서 시도했기 때문에 '자체적으로 결합'하려고하기 때문에 다음과 같은 것을 던졌다. 유일하지 않은 테이블/별칭 : 'followings': SELECT'followings'. * FROM'followings' INNER JOIN 'followings' on'followings'.id ='followings'.following_id WHERE ('followings'.follower_id = 1) –