• Почему такой тест проходит. А из книги не проходит?

    Shamoi
    @Shamoi
    Python, Flask
    В первом случае, регулярное выражение [\d]+\.\d\d захватывает цену в формате "число.число".
    Во втором случае, регулярное выражение \$[,\d]+\.\d\d требует знак доллара перед ценой, например "$число.число". Чтобы во втором случае тест проходил, нужно добавить знак доллара к цене или изменить регулярное выражение на [\d]+\.\d\d
    Ответ написан
    3 комментария
  • Как сделать разработку web-движка публичной?

    @BorisKorobkov
    Web developer
    развёрнута крупная система... успешно работает... пережила несколько попыток взлома... крайне проста в доработке функционала... мощное api через ajax.. все очень компактно... работает быстро


    У меня deja vu, где-то я это уже слышал... А, вспомнил! В фильме "Если наступит завтра":

    - Вот, господа, опытный образец компьютера Сукаба.
    - Почему он такой маленький?
    - Миниатюрный.
    - Недорогой, неломающийся, затрачивающий меньше энергии, чем любой другой.
    - Я только что узнал, что значит сукаба...
    - Абакус.
    - А что такое абакус?
    - Счёты, идиот! Как бы древний восточный компьютер.
    Ответ написан
    7 комментариев
  • Как вы решаетесь на закрытие слабых проектов?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Часть задач (самую рутину) по таким проектам делегирую.
    Ответ написан
    Комментировать
  • Как вы решаетесь на закрытие слабых проектов?

    Bandicoot
    @Bandicoot
    Вась-программист
    Этот проект нужно продавать или отдавать в хорошие руки (делегировать задачи по нему).
    Ответ написан
    Комментировать
  • Как делать сайт вдвоем и более?

    alvvi
    @alvvi
    export default apathy;
    как быть с закрытой версткой

    Приватный репозиторий на github/bitbucket
    На первом платно, но деньги небольшие, на втором бесплатно

    следом идет как работать с gulp (если каждый имеет свои файлы для верстки, но после компиляции будем перезатирать друг друга)

    скомпилированные файлы шарить не нужно, только исходники

    Думаю, проблема не в глупости, а в непонимании git'a и отсутствии опыта работы с ним, просто потратьте вечер на его изучение и все встанет на свои места.
    Ответ написан
    6 комментариев
  • Где искать middle/senior backend программиста?

    @J_K
    Вы бы лучше рассказали, что за проект. Может быть, какой-нибудь программист хотел бы поработать в стартапе для души, с прицелом стать его совладельцем в будущем. Совсем не все, даже при хорошей зарплате, хотят всю жизнь работать на дядю. Успехов.
    Ответ написан
    Комментировать
  • Где искать middle/senior backend программиста?

    @Alexey_Kutepov
    Разработчик программного обеспечения
    Если работаешь за долю, то энтузиазм гаснет очень быстро и проект в конце концов останавливается. Это происходит по нескольким причинам:
    1. Это может показаться удивительным, но каждому человеку необходимо питание, а оно стоит денег. Соответственно проекты, приносящие деньги стоят в безоговорочном приоритете и в случае аврала на денежных проектах, человек полностью выпадает из проекта "за долю".
    2. Очень мутное законодательство и твоя доля легко может превратиться в тыкву.
    3. То что сделано за бесплатно - не ценится совсем. То есть результат работы, выполненной бесплатно = 0 рублей. Это становится очевидно только в процессе работы.
    4. У вас есть продажи, а значит есть какие-то деньги. Как себя будет чувствовать человек в команде, если все зарабатывают, а он работает за бесплатно?
    Иногда бывает такое что дивидендов в ближайшем будущем не предвидится, а количество работы растёт в геометрической прогрессии и человек изначально подписывался на один объём работ, а по факту получил другой. Это тоже жёстко может ударить по мотивации.
    Так что тут только остаётся искать финансирование, или новых клиентов, затягивать пояса и делить деньги на всех, раз есть продажи.
    Ответ написан
    Комментировать
  • Какой способ валидации в моделях Ruby on Rails является предпочтительным?

    Jeiwan
    @Jeiwan
    Второй способ устаревший. Стайлгайды не одобряют (https://github.com/bbatsov/rails-style-guide#sexy-...), Хаунд ругается.
    ИМХО, первый способ читать удобнее, так как все валидации, относящиеся к одному полю, лежат в одной строчке — удобнее искать, ведь если мы хотим проверить валидацию поля, то будем искать её по названию поля.

    Предпочтительнее использовать тот, который используют в вашем проекте. Если пилите что-то для себя, и код кто-то увидит (потенциальный работодатель), то лучше придерживаться наиболее распространенных стайлгайдов (опять же https://github.com/bbatsov/rails-style-guide), так как это может показать вашу дисциплинированность и желание следовать лучшим практикам. Если пилите для себя, и код никто не будет смотреть, то пишите, как хотите.
    Ответ написан
    1 комментарий
  • Тестирование nested ресурсов?

    @raventid
    Насколько я понимаю у вас есть контроллер AnswersController? И он управляет ресурсом ответы. Если так, то да, пишите тесты контроллера на него в файлик answers_controller_spec.rb, например создание с помощью аякса можно протестировать так

    answers_controller_spec.rb

    describe 'POST #create' do
        sign_in_user
    
        context 'with valid attributes' do
          it 'saves answer in database' do
            expect { post :create, question_id: question, answer: attributes_for(:answer), format: :js }.to change(question.answers, :count).by(1)
          end
    
          it 'assigns answer with current user' do
            post :create, question_id: question, answer: attributes_for(:answer), format: :js
            assigning_answer = assigns(:answer)
            expect(assigning_answer.user_id).to eq subject.current_user.id
          end
    
          it 'render create template' do
            post :create, question_id: question, answer: attributes_for(:answer), format: :js
            expect(response).to render_template :create
          end
        end


    И не забудьте уделить особое внимание акцептанс спекам и тестам модели. Тесты контроллера не самое главное :)
    Ответ написан
    4 комментария
  • Как получить индекс итерации?

    Из вопроса не очень понятно что нужно сделать.
    3.4.5 Рендеринг коллекций
    С индексом
    Надеюсь это поможет.
    Ответ написан
    1 комментарий
  • Как сделать регистрацию пользователей по номеру телефона на Rails с использованием Devise?

    viktorvsk
    @viktorvsk
    Готового мало, потому что, как говорит один из создателей рельс - аутентификация слишком завязана на бизнес-логике, что бы вносить ее в фреймворк.

    По сути, ваш номер телефона, просто вид логина. Вот руководство по аутентификации по логину вместо\вместе с эмейлом: https://github.com/plataformatec/devise/wiki/How-T...

    А дальше уже ваша собственная логика по отправке смс, отправке почты, если она присутствует (и вообще, может присутствовать или нет) и т.д.
    Ответ написан
    Комментировать
  • Почему не работает сортировка в PostgreSQL?

    ewgenio
    @ewgenio
    Всё по чуть чуть
    Ошибка вываливается из за ASC он должен быть после order by который и должен сортировать а не группировать записи.
    конечный запрос должен быть таким:
    SELECT 
      city, count(*)
    FROM 
      ip
    GROUP BY
      city 
    ORDER BY
      city ASC;
    Ответ написан
    Комментировать
  • Можно ли так require - дить файлы внутри методов?

    Bratela
    @Bratela
    Или так:
    require_relative 'someclass'
    opop #вызов метода прописаный в someclass.rb
    Ответ написан
    Комментировать
  • Какую базу выбрать при разработке и продакшне?

    webus
    @webus
    Golang | Python | NodeJS | Java
    Использовать нужно одну и ту же базу. Пример: хотите использовать JSONB поле, которое есть в PostgreSQL но нет в SQLite. Зачем себя ограничивать ?
    Ответ написан
    Комментировать
  • Как правильно обновить postgresql массив в Rails?

    Dem1
    @Dem1 Куратор тега Ruby on Rails
    Ruby on Rails developer
    Можно и text_field, Нужно просто добавить дополнительные методы, Предположим, что у нас поле names

    class User < ApplicationRecord
      def names_list
        names.join(', ')
      end
    
      def names_list=(new_value)
        self.names = new_value.split(/,\s+/)
      end
    end


    И соответственное где-то в форме, обновляем через запятую в данном случае, но это уже как вам захочется
    <%= f.text_field :names_list %>

    и не забудь поменять в контроллер
    params.require(:user).permit(:names_list)
    Ответ написан
    1 комментарий