2013-02-24 1 views
0

저는 루비와 레일에 매우 익숙합니다. 그래서 이것은 아마도 간단한 질문 일 뿐이지 만 매우 혼란 스럽습니다.사용자의 기본 설정 목록을 저장하려면 어떻게합니까?

사용자가 있습니다 (모델, 컨트롤러,보기 및 모든 것이 이미 설정되어 있음). 이제 사용자가 선호하는 것을 나타낼 수있는 부분을 소개하고자합니다. 예를 들어 사용자가 가장 좋아하는 5 가지 음식을 표시 한 다음 좋아하는 음식으로 사용자를 검색 할 수 있습니다.

이것은 첫 번째 레일 프로젝트로서, 어떻게 접근해야하는지 조금 확신 할 수 없습니다. 내 생각은 지금까지 :

1) 내 사용자 모델에 부울 배열을 추가하고 배열을 확인란으로 렌더링 한 다음 어떻게 든 저장합니다. (필자는 마이그레이션을 생성하는 방법이나 그런 식으로 구현 된 식량 항목으로 검색하는 방법을 모르겠습니다.)

2) 내 사용자 모델에서 음식 모델을 만들고 has_many 관계를 사용하여 사용자를 음식에 연결하십시오. 그러면 음식을 기반으로 사용자를 검색 할 수있을 것이라고 생각합니까? 나는 식품 모델과 관련하여 어떤 정보도 가지고 있지 않기 때문에 과도하다고 생각합니다. 그것은 단지 사용자에게 연결하는 것입니다.

모든 제안, 코드, 힌트 또는 팁은 대단히 감사하겠습니다.

답변

1

먼저, 리소스로 http://railscasts.com/을 사용해야합니다. 여기에서 설명하는 모든 내용이이 사이트에 대한 자습서가 있습니다.

검색 및 반환 목록이 번거롭기 때문에 사용자 필드에 여러 필드 (예 : fav_food_one, fav_food_two 등)를 추가 할 때주의해야합니다. 당신이 당신의 모델에서

User: username, name, email, etc 

Food: name, category, fun_facts, etc 

UserFavoriteFoods: user_id:integer, food_id:integer 

을 has_many 협회가 어디

당신은 가능성이 같은 연결을 만들 것, 뭔가를 원하는 것입니다.

User=> 
    has_many :user_favorite_foods, :dependent => :destroy 
    has_many :foods, :through => :user_favorite_foods 

Food=> 
    has_many :user_favorite_foods, :dependent => :destroy 
    has_many :users, :through => :user_favorite_foods 

UserFavoriteFoods => 
    belongs_to :user 
    belongs_to :food 

이 그런 다음 (내가 사용 # 쇼 있으리라 믿고있어)보기에, 당신이 좋아하는 일을 할 수있는이

<% @user.foods.each do |food| %> 
<li><%= food.name %></li> 
<% end %> 

편집 =>

또한 simple_form 같은 보석을 사용할 수 있습니다

및 그것을 사용자 양식에 적용하십시오.

이런 종류의 목록에 f.association :foods을 사용하면 자동으로 선택 상자가 표시되어 사용자가 다른 식품 항목을 쉽게 선택할 수 있습니다.

+0

railscasts.com 링크를 이용해 주셔서 감사합니다. 그것은 매우 유용합니다. 내가 원했던 것은 여기에 있습니다 : http://railscasts.com/episodes/167-more-on-virtual-attributes?autoplay=true –

관련 문제