Ответы пользователя по тегу Ruby on Rails
  • Математические вычисления в Rails — как лучше сделать?

    Loremaster
    @Loremaster
    Логику нужно стараться выносить в соотвествующую модель и держать контроллер тонким, чтобы не разводить там каши. Попробуйте написать в модели следующее:

    def self.total_amount
     sum('amount')
    end
    


    И вызывайте потом ModelName.total_amount.
    Ответ написан
    2 комментария
  • Rails: Какие гемы Вы используете

    Loremaster
    @Loremaster
    Тестирование:

    * Cucumber — этот bdd фреймворк изменил мое сознание и дал увидеть какими красивыми могут быть тесты. Использую для интеграционного тестирования.
    * Capybara — высокоуровневый движок для проверки существования элементов на странице и прочего барахла.
    * Rspec — чудная штукенция, красивый и очень удобный тестовый фреймворк, который использую преимущественно для тестов контроллера и моделей.
    * FactoryGirl — удобная библиотека для создания фабрик для создания объектов.
    * DatabaseCleaner — для подчищения мусора перед/до/во время тестов.
    * CapybaraWebkit — это чтобы не открывать браузер при запуске тестов. Экономит время и вообще труъ. В своем проекте только за счет этого уменьшил время прогона тестов раза в 2.
    * ParallelTests — распаралеливаем тесты, за счет этой штуки выигрыш по скорости получил в 5 раз примерно.

    Разработка:

    * BetterErrors — ну уж очень удобная штука! Красиво отображает ошибки. Настолько полюбилось, что таскаю из проекта в проект и везде ставлю. Только добавьте к нему binding_of_caller, чтобы включить продвинутые возможности, такие как консоль прямо в окне с ошибкой!
    * QuietAssets — просим ассеты не шуметь в логах. Рекомендуется только для development режима.
    * Annotate — добавляем в модели (а также можно и в тесты соответствующие) схему таблички. Я нахожу это весьма удобным.
    * Brakeman — нам же не начхать на безопасность, правда? Правда! Поэтому мы будем хорошими молодцами и будем хотя бы иногда сканировать наше приложение в поисках уязвимостей, порой можно что-то очень даже дельное найти.
    * Gon — передаем данные из рельс в js легко и непринужденно. Очень удобный инструмент, правда! Попробуйте!
    * Slim — красивый и очень легкий шаблонизатор. Приятнее, чем, erb, легче (как минимум — визуально), чем haml.

    Перечислено, конечно же, далеко не все, что использую. Пользуйтесь на здоровье. :)
    Ответ написан
    Комментировать
  • Использование @var в link_to

    Loremaster
    @Loremaster
    Если нужно, чтобы переменная была доступна во всех (ну или большом количестве) методах, то можно сделать так:

    before_filter :init_company
    ...
    private
    
    def init_company
      @company = Company.find(params[:id])
    end
    

    После этого ваша переменная становится доступна во всех методах контроллера. В случае rails 4 можно также заменить before_filter на before_action, что придаст коду большую ясность.

    Судя по всему, у вас довольно много ошибок: вы зачем-то пытаетесь создавать объект, вместо того, чтобы его находить. Также во вьюхе: второй параметр в link_to должен быть вида zzz_path.
    Ответ написан
    5 комментариев
  • Установка Ruby on Rails на Debian 6

    Loremaster
    @Loremaster
    На railscasts есть шикарный урок, посвященный деплою на vps: railscasts.com/episodes/335-deploying-to-a-vps

    Пара замечаний:
    1) Он платный (но 9 долларов в месяц за достаточно большую базу — это небольшая цена).
    2) В качестве ОС там ставят Ubuntu (но основную идею, думаю, поймете).
    Ответ написан
    Комментировать
  • Вопрос к Ruby девелоперам: за что Вы любите Ruby?

    Loremaster
    @Loremaster
    + Ясность, краткость и выразительность языка: наличие очень мощных библиотек для работы с текстом, массивами, простая работа с файлами, ну и так далее.
    + В целом, как я заметил, достаточно хорошая культура разработчиков к написанию качественного и лаконичного кода, покрытие тестами, возможно, это объясняется достаточно высоким уровнем самих разработчиков.
    + Большой набор библиотек на разные случаи жизни, при этом они все достаточно актуальны и их стараются поддерживать. Если поддерживать перестают, то делают форк, либо появляется иной проект.
    + Ruby on Rails — я считаю это киллер фичей, расписывать про него не буду, в инете и так вагон материала.
    + Достаточно большое сообщество разработчиков.
    + Полностью объектно-ориентированный, но при этом позволяет писать в псевдо-процедурном стиле, а также в функциональном.
    Ответ написан
    Комментировать