У меня есть система, которая отображает учебные ресурсы для навыков и (в основном) групп навыков на моем сайте. Пользователь может выразить интерес либо к умению, либо к группе навыков, которая хранится в полиморфной таблице interests
.Rails Полиморфная ассоциация - объединяйте элементы с похожими отношениями
Я хотел бы показать обучение для каждого класса навыков или группы навыков на домашней странице пользователя, но, на мой взгляд, хочу только итерации через интересы, которые имеют подготовку (не все навыки или группы навыков имеют обучение).
Как skill.rb
, так и модели skill_group.rb
определяют отношения учебных ресурсов.
_interests.html.erb
# Currently iterate through all interests
<% @user.interests.each do |interest| %>
<% interest_element = interest.interest_element %>
<% if interest_element.training_resources.size > 0 %>
# More rendering code here...
<% end %>
<% end %>
interest.rb
class Interest < ActiveRecord::Base
belongs_to :user
belongs_to :interest_element, :polymorphic => true
end
В идеале, я хотел бы перебирать ограниченным набором интересов с чем-то вроде этого:
@user.interests.joins(:interest_element => :training_resources).each do |interest|
, но я получаю ошибку Can not eagerly load the polymorphic association :interest_element
Есть ли способ, которым я могу присоединиться к этому типу?
Спасибо за ответ! К сожалению, я больше не работаю над этим проектом и не могу проверить, работает ли он для меня. Надеюсь, ваш ответ поможет кому-то еще! – claptimes