Я борюсь с ассоциацией has_many. У меня есть дневниковая заявка. В модели игроков следующим образом:Связь has_many с нетрадиционной моделью данных
- Пользователь
- UserFriend
- UserFoodProfile
Я хочу, чтобы иметь возможность получить на все продукты, которые съели друзей пользователя. Итак, я хочу иметь возможность: current_user.friends.profiles
Я установил ассоциации должным образом до тех пор, пока я не смогу получить доступ к current_user.friends
, но теперь я хочу иметь возможность получить все записи друга, а также последние 30 дней.
Вот мои модели
class User < ActiveRecord::Base
cattr_reader :per_page
@@per_page = 20
has_many :user_food_profiles
has_many :preferred_profiles
has_many :food_profiles, :through => :user_food_profiles
has_many :weight_entries
has_one :notification
has_many :user_friends
has_many :friendships, :class_name => "UserFriend", :foreign_key => "friend_id"
has_many :friends, :through => :user_friends
class UserFriend < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
class UserFoodProfile < ActiveRecord::Base
belongs_to :user
belongs_to :food_profile
belongs_to :post
Модель UserFriend настроена следующим образом:
- ID
- user_id
- friend_id
- FRIEND_NAME
Я хочу подключиться к user_food_profiles
от друга, так что я могу получить текущее имя пользователя user_food_profiles
как «записи», но все, что я пробовал, не сработало. Как мне настроить эту связь?
Пытался сделать:
- UserFriend:
has_many :user_food_profiles, :as => 'entries'
- UserFoodProfile:
belongs_to :friend, :foreign_key => 'friend_id'
Любые идеи о том, как сделать эту работу? Соблазн создать пользовательский finder_sql, но я уверен, что это может работать с ассоциациями.