У меня странная ситуация с моделью данных, поэтому, возможно, весь мой подход неверен.Вот что я делаю:
У меня есть класс Bird и простой класс Color.Концептуально каждая птица имеет две ассоциации to_many с цветом, одна для мужских цветов и одна для женских.Я справился с этим, используя модель соединения, называемую BirdColoration, которая принадлежит птице и цвету и имеет дополнительное логическое поле, чтобы указать, подходит ли окрас мужской или женской.Таким образом, каждая птица на самом деле имеет отношение to_many к BirdColoration, а также to_many к Color: посредством BirdColoration.Если это звучит разумно, продолжайте чтение.В противном случае, остановитесь и скажите мне, почему это неправильно!
Мне нужно иметь возможность сбросить таблицу птиц как json.Раньше, когда у каждой птицы была только одна связь to_many с цветами, я мог просто использовать: include, чтобы включить цвета каждой птицы в дамп json.Теперь я включаю BirdColorations в дамп, но мне все еще нужно разобраться с самими цветными моделями.Я мог бы отдельно включать цвета и окраски каждой птицы, а затем сопоставлять их при разборе, но я бы предпочел просто включить цвет каждой окраски напрямую.Что-то вроде
format.json { render :json => @birds.to_json(:include => [{:bird_colorations => :color}, :seasons, :habitats, :image_holders]) }
Выше не работает, однако.Я думаю, что это должно быть возможно.Кто-нибудь может указать мне правильное направление, как справиться с этим?
А пока я просто включу цвет и окраску каждой птицы отдельно и сопоставлю их при разборе.По крайней мере, я знаю, что это сработает.
Спасибо!