ActiveRecord - запросы полиморфных ассоциаций

Я думаю, что вы ищете REST API импорта репозитория:

POST /api/import/repositories?repo=&path=

Это должно скопировать структуру папок и файлов в path в repo. Конечно, чтобы это работало, ваш FTP-контент должен быть виден из файловой системы Artifactory.

39
задан Undistraction 6 November 2014 в 09:24
поделиться

2 ответа

Argh!

Я думаю, что нашел проблему.

При присоединении через:

@comments = Comment.find(:all,
        :joins => "forum_topics",
        :conditions => ["forum_topics.featured = ? ", true] 
        )

Вам нужно целое соединение!

:joins => "INNER JOIN forum_topics ON forum_topics.id = comments.commentable_id",

Посмотрите когда-либо потрясающее: http://guides.rubyonrails.org/active_record_querying.html#joining-tables

31
ответ дан Toby Hede 27 November 2019 в 02:10
поделиться

Принятое решение не работает после того, как вы представите другую модель, у которой есть связь с помощью "commentable". commentable_id не уникален, поэтому вы начнете получать неправильные комментарии.

Например:

Вы решили добавить модель новостей, которая принимает комментарии ...

class News < ActiveRecord::Base
   has_many :comments, :as => :commentable
end

Теперь вы можете получить назад две записи, если вы сделали комментарий к forum_topic с идентификатором 1 и новостная статья с идентификатором 1 с использованием вашего запроса:

:joins => "INNER JOIN forum_topics ON forum_topics.id = comments.commentable_id"

Вероятно, вы могли бы решить проблему, указав commentable_type в качестве одного из ваших условий, но я не думаю, что это лучший способ решить эту проблему.

16
ответ дан 27 November 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: