2

나는 디지털 사이 니지 응용 프로그램을위한 CMS 기능을하는 간단한 레일 앱을 가지고 있습니다.
이 앱에는 모든 사용자에게 제공하려는 미리 정의 된 스타일 풀이 있습니다.
모든 스타일에는 배경 그림, 일부 CSS 및 비디오가 포함됩니다.
많은 사용자가 소유 한 모델에 대한 레일스 연결

내 목표는, 내가 다른 스타일을 준비 할 수있는 설정을 얻을 그는 자신의 계정에 대한 active_style로 스타일 중 하나를 선택할 수있는 메뉴가 있어야 레일 관리자 및 모든 사용자를 사용하여 추가하는 것입니다.

쉽게 들리지만, 내가 붙어있어 점은 사용자스타일 모델 사이의 연관성이다.
몇 시간 (has_many :/has_many_though/has_and_belongs_to_many) 동안 다른 것들을 시도했지만 각 사용자가 스타일 객체 중 하나를 선택하여 active_style으로 지정할 수있는 시점에 도달 할 수없고 단지 허용 하나만 active_style 한 번에 .

나는이 일을하는 가장 좋은 방법이 무엇인지 궁금하며 누군가 도와 줄 수 있다면 매우 행복 할 것입니다.
레일스 프로그래밍에 비교적 익숙하다. 어리석은 일로 변명해라.

답변

3

나는 그것이 직관력이없는 것처럼 들리지만이 경우에 원하는 연관성은 "belongs_to"라고 생각합니다. 나는 "사용자가 활성 스타일에 속한다"는 이상한 말을하기 때문에 직관적이지는 않지만, "has_one"은 단일 스타일을 여러 사용자가 사용할 수있는 스타일로 허용하지 않습니다.

style = Style.find(...) 
user = User.create(active_style: style) 
user.active_style # => style 
+0

감사 :

User < ActiveRecord::Base belongs_to :active_style, class_name: 'Style' end 

이 다음과 같은 일을 할 수있게된다 :

다음 코드는 외래 키를 저장합니다 귀하의 사용자 테이블에 "active_style_id"정수 열이 가정 당신 Beerlington! 위대한 답변, 이것이 내가 원했던 것입니다. 당신도 이것의 "직관적이지 않은"성질에 대해서 맞습니다 :) 이것은 바로 내가 belongs_to를 사용하지 못하게했습니다. 나는 그것을 사용할 때 하나의 스타일이 여러 사용자에게 활성화되는 것을 허용 할 수 없다고 생각했지만 분명히 다른 스타일로 사용되었습니다. 무리 감사! – Etienne678