Pull to refresh
16
Karma
0
Rating

Пользователь

  • Followers 2
  • Following 2

Без политики. Как навсегда преобразить уличные протесты с помощью мобильного приложения?

Development of mobile applications *
Последние N тысяч лет протестные собрания принципиально не менялись.

Собирается толпа протестующих и начинает что-то скандировать, — как правило короткими ритмичными фразами (толпа не способна на большее). Заводила начинает, толпа подхватывает и понеслось, пока инерция не погаснет или пока лидер не запустит новую кричалку. Получается довольно громко, но невнятно. Случайные прохожие даже не всегда в состоянии понять, чего именно хотят все эти люди? Ну да, «Гитлер — вор», а если конкретнее?

20-й век одарил митингующих звукоусиливающим оборудованием. И примитивные кричалки стали перемежаться с зажигательными речами ораторов. Круто? Круто! Эффект от такого собрания несравнимо больше.

Но есть две проблемы.
Читать дальше →
Total votes 61: ↑51 and ↓10 +41
Views 22K
Comments 231

has_many :through => Как быстро обратиться к join-объектам?

Ruby on Rails *
Вы знаете, что когда требуется организовать many-to-many отношения между двумя моделями, прогрессивная часть человечества применяет join-таблицы и метод has_many с опцией :through => :join_model_name. Каждая связь между двумя ActiveRecord-объектами представляет собой ActiveRecord-объект.

И это чудесно, ибо в join-таблице можно насоздавать полезных (так называемых «extra») полей с дополнительной информацией о связях между объектами.

Вопрос в том, как красиво достучаться до этих extra атрибутов.

Все скринкасты и книжки, как назло, оперируют простыми примерами. Например, дружат между собой модели Article и Category. Само собой, для join-класса интуитивно напрашивается имя Categorization или ArticleCategorization.

has_many through

Соответственно, если у нас есть два объекта — article и category, и мы хотим найти AR-объект (или объекты), олицетворяющий связь между ними, то авторы книжек с чистым сердцем предлагают делать так:

relations = article.article_categorizations.find_by_category_id(category)


В жизни все сложнее. Модели нередко имеют длинные составные имена, либо между моделями такая связь, что придумывание имени для каждой join-модели превращается в маленькую пытку. Представим, что у нас модели не Article и Category, а UserGroup и Community, или Preorder и CustomerNotification. Как должна называться связующая модель? Возможны варианты.

Читать дальше →
Total votes 36: ↑32 and ↓4 +28
Views 6.7K
Comments 11

Information

Rating
Does not participate
Registered
Activity