다음을 얻는 최선의 방법에 대해 잘 모르겠습니다.레일스는 has_many 릴레이션에 합류하고 관계가없는 결과를 원합니다.
한 국가에 속한 사용자가 있습니다. 그런 다음 각 국가별로 다르게 배치 할 수있는 몇 가지 범주가 있습니다.
특정 국가의 모든 범주와 위치가있는 배열을 가져오고 싶습니다 (category_position.position, category.name 순). 또한 category_position을 추가하지 않은 카테고리를 목록에 포함하려고합니다. 나는 나에게 위치가 사용자 국가를 위해 추가 한 모든 종류를 제공
categories = Category.joins(:category_position)
.where("category_positions.country_id = #{user.country.id}")
를 사용하여 시도
class Country < ApplicationRecord
has_many :category_position
class Category < ApplicationRecord
has_many :category_position
class CategoryPosition < ApplicationRecord
attr_accessible :country_id, :position, :category_id
belongs_to :country
belongs_to :category
:
나는 다음과 같은 구조를 가지고있다. 동일한 목록뿐만 아니라 사용자 국가에 대한 위치가 추가되지 않은 모든 카테고리를 어떻게 얻을 수 있습니까?
이상적으로이 목록은 위치 (1,2,3), 이름 (동일한 위치 인 경우) 및 위치가없는 목록 범주의 끝에 정렬해야합니다.
답장을 보내 주셔서 감사합니다. 나는'또는 category_positions.country_id is NULL '을 추가하면서 시도했지만 여전히 위치가 추가 된 카테고리 만 반환합니다. 나는'categories = category.left_outer_joins (: category_position) .where ("category_positions.country_id가 NULL")'를 시도했지만 아무것도 반환하지 않습니다. category_positions이없는 여러 카테고리가 있더라도 – peroseth