• Какие есть нормальные туториалы или уже готовые гемы по написанию чата, как в скайпе\вк\фб на Руби он Рейлс?

    anton9
    @anton9
    Люблю Ruby on Rails
    Очень советую изучить ActionCable, который стал доступен начиная с Rails 5.0
    Вот отличный туториал - https://www.learnenough.com/action-cable-tutorial
    Ответ написан
    Комментировать
  • Как подключить иконки fonts в rails?

    anton9
    @anton9
    Люблю Ruby on Rails
    Попробуйте так:
    файлу добавьте (дополнительно) окончание .erb (т.е. file_name.scss.erb)
    далее
    @font-face {
      font-family: 'glyphicons-halflings-regular';
      src: url(<%= font_path 'glyphicons-halflings-regular.eot' %>);
      src: url(<%= font_path 'glyphicons-halflings-regular.eot?iefix' %>) format('eot'),
      url(<%= font_path 'glyphicons-halflings-regular.woff' %>) format('woff'),
      url(<%= font_path 'glyphicons-halflings-regular.ttf' %>) format('truetype'),
      url(<%= font_path 'glyphicons-halflings-regular.svg#webfont' %>) format('svg');
    }
    Ответ написан
    Комментировать
  • Аналог книги "Программист прагматик" для менеджеров проектов, бывает такое?

    anton9
    @anton9
    Люблю Ruby on Rails
    Очень советую помимо всех перечисленных вот эти две:
    Peopleware by Lister, DeMarco
    The Deadline: A Novel About Project Management

    А вообще я специально этому раздел в своем блоге посвятил, если можно немного саморекламы - blog.handsomecake.com/booking-books
    Ответ написан
    Комментировать
  • Как вырасти из программиста в менеджмент?

    anton9
    @anton9
    Люблю Ruby on Rails
    Могу ещё посоветовать поучиться на "кошках" - если вы в вебе, то тут проще - поспрашивайте у знакомых, может кому-то нужно сделать относительно простой сайт.
    - соберите требования с клиента (знакомого)
    - найдите фрилансера-дизайнера
    - найдите фрилансера-верстальщика
    - проследите, что бы процесс прошел без перебоев, что бы дизайнер сделал все страницы, все экраны и состояния, что бы верстальщик все адекватно и адаптивно сверстал, что бы работал весь его JS
    - если вы вебщик, то напишите бэкенд, задеплойте его, покройте приложение тестами, протестируйте его
    - найдите контентщика для некой поддержки этого сайта

    Если пройдете все эти шаги, при этом не переругавшись ни с кем, не послав друг друга куда подальше, поздравляю - вы хороший начинающий манагер.
    Ответ написан
    6 комментариев
  • Как и где получить оценку моих знаний о управлении ИТ проектом (свидетельство для работадателя)?

    anton9
    @anton9
    Люблю Ruby on Rails
    TL;DR
    Забудьте про тесты. Лучше начинайте фигачить код.

    Полная версия (описываю свой опыт).
    Без толковых знаний в области, в которую вы хотите устроиться на вас программисты будут смотреть как на мешающее звено. Возможно, через это нужно пройти, мне это точно помогло. Но если хотите менее болезненный способ, то попробуйте зафрилансить сначала проект, где вам нужно сделать все от А до Я.
    Т.е.
    • понять, что нужно заказчику
    • проанализировать feasibility, рынок - возможно то, что хочет заказчик изначально провальная идея
    • адекватно сформулировать эти требования в документ, который будет доступен всем испольнителям
    • найти подрядчиков (дизайнер, верстка, программисты)
    • сдайте проект, попробуйте раскрутить его


    Вы можете быть поверх этих звеньев, тогда я бы сказал, что это типичный ПМ, если вы дополнительно исполняете какую-то внутреннюю роль (скорее всего программирование), то вы скорее ТехЛид/ТехДир.

    Я описал из соображений веб-разработки, в локальном ПО возможны отклонения, но принцип похожий.

    Эта была важная техническая составляющая. Теперь социальная:
    Самое главное - не быть мудаком. Не поверите, но это довольно редкое явление на сегодняшнем рынке, к сожалению. Вы должны заботиться о разработчиках, как о своих детях, оберегать их от всякой тупой/рутинной работы (кстати лучший способ завоевать себе респект - перенять у разрабов такую работу на себя), защищать от корп. политики. Только не нужно становиться друзьями! Я сделал такую ошибку и было очень сложно быть жестким, когда ты с людьми по вечерам у них дома за вискариком в покер играешь.

    Резюмируя
    Если есть некий основной доход, то смело поспрашивайте у знакомых, может быть кому-то нужно сделать сайт с нуля. Займитесь на пол года этим проектом (даже бесплатно). Потом будет устроиться куда легче. Если все-таки будете устраиваться сразу сейчас, начните внедрять то, что я описал из социальной части (эффективно начать с технической части все равно вряд ли получится), потом потихоньку подключайте технические скиллы.
    Ответ написан
  • "Пользовательские среды" в приложение Ruby on Rails?

    anton9
    @anton9
    Люблю Ruby on Rails
    Не уверен, правильно ли я все понял, что нужно в конечном итоге, но реализовать можно следующим образом:

    Если хочется заморачиваться и писать собственную авторизацию, то как это с нуля сделать хорошо описано тут:


    Если лень, то можно использоваться гем devise (https://github.com/plataformatec/devise) и при создании модели прописать ей дополнительное поле "роль".

    Соответственно дальше создаете модель "Право".

    rails generate model Permission edit:boolean view:boolean delete:boolean + что ещё на ум придет


    Создаете has_and_belongs_to_many реляцию
    rails generate model UserPermission user:references permission:references


    Например у вас проект открывается сразу в edit-темплейте

    =form_for @project do |f|
    какой-то код
      =f.collection_select(:permission_ids, Permission.all, :id, :permission_title, {include_blank: false, :include_hidden => false, :selected => @project.permissions.map(&:id)}, { class: 'тут какой-то css', :multiple => true})


    Если нужно ограничить права доступа только для этого проекта, то в модель UserPermission добавляем поле project_id
    rails generate model UserPermission user:references permission:references project_id:integer


    а в код формы
    =form_for @project do |f|
    какой-то код
      =f.collection_select(:permission_ids, Permission.all, :id, :permission_title, {include_blank: false, :include_hidden => false, :selected => @project.permissions.map(&:id)}, { class: 'тут какой-то css', :multiple => true})
      =f.fields_for :user_permission do |s|
        =s.hidden_field :project_id, value: @project.id


    Код писался из головы, плюс не совсем уверен, что полностью понял проблему, так что прошу не линчевать, если не на 100% все как нужно.
    Ответ написан
    Комментировать
  • Rails поставить яндекс метрику и jivochat с turbolinks?

    anton9
    @anton9
    Люблю Ruby on Rails
    Допустим переходим на другую страницу через turbolinks и онлайн чат пропадает.


    Как вот эта часть у вас выглядит?

    Если это link_to, то попробуйте прописать дополнительно method: :get
    link_to 'Ссылка', some_link_path, method: :get
    Ответ написан
    Комментировать
  • Как вытащить пост с комментариями по определенной дате?

    anton9
    @anton9
    Люблю Ruby on Rails
    Небольшая ремарка - я так предполагаю, что у вас этот код в контроллере. Такие вещи лучше выносить в модели используя scope и лямбды. В вашем случае это будет
    class Post < ActiveRecord::Base
    
    scope :recent, -> (start_date, end_date) { joins(:comments).where('comments.start_date =>?', 'comments.finish_date <=?', start_date, finish_date)}
    # можно также добавить скоуп для поиска по юзер айди
    scope :by_user, -> (user_id) {where (user_id: user_id)}
    
    # теперь можно слинковать эти скоупы в отдельном методе
    class << self
      def by_user_and_date(user, start, finish)
        by_user(user).recent(start, finish)
      end
    end


    В контроллере вызываем
    @recent_by_user = Post.by_user_and_date(10, Date.today, Date.yesterday)
    Ответ написан
    Комментировать
  • Когда нужно ставить belongs_to, а когда has_one?

    anton9
    @anton9
    Люблю Ruby on Rails
    belongs_to - означает, что у Page есть много Features. Т.е. для обратной связи у Page должно быть
    class Page < ApplicationRecord
      has_many :features
    end


    Таким образом можно вызвать
    page = Page.first
    page.features


    Если такой связи нет, то следует использовать has_one следуя вашей логике.
    Ответ написан
    Комментировать