Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

vsuhachev

  • 153
    вклад
  • 2
    вопроса
  • 265
    ответов
  • 33%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • С чего начать школьнику 16 лет?

    vsuhachev @vsuhachev
    Вы извините конечно, но я бы вам настоятельно рекомендовал с русского начать, он не менее важен чем английский (а вообще даже более важен)
    Написано более трёх лет назад
  • MVC vs MVVM за чем будущее?

    vsuhachev @vsuhachev
    Вот вы пишите "Вид не работает с моделью и ссылку на него не имеет, он работает с абстракцией модели."

    Кто то эту абстракцию разместил в контроллере. А дальше получаем "MVC декларирует разделение на логику представления, бизнес логику и связывающие это все контроллеры".
    Написано более трёх лет назад
  • MVC vs MVVM за чем будущее?

    vsuhachev @vsuhachev
    КаждыйПишетКакхочет, концепция MVC пошла в массы и получила реализации немного другие чем ваш "паттерн" из GoF и смолтока. Вот dhh в рельсах так реализовал его, а не через подписку на события потому что так было оптимальней для веба. Что в этом плохого?
    Написано более трёх лет назад
  • MVC vs MVVM за чем будущее?

    vsuhachev @vsuhachev
    vasIvas: Насколько я понял, основная мысль и там и у вас - реализации MVC могут быть разные. К этому плюсуюсь :)
    Написано более трёх лет назад
  • MVC vs MVVM за чем будущее?

    vsuhachev @vsuhachev
    Насколько я могу судить - Сергей Портько не сказал ничего что противоречит вашему посту, за который вам спасибо огромное!
    Написано более трёх лет назад
  • Реализация жизненного цикла документа (а-ля IBM Lotus Workflow)?

    vsuhachev @vsuhachev
    Ничего странного не вижу. Документооборот - это серьезные конторы которые предпочитают платформы (тот же Лотус) от серьезных вендоров за серьезные деньги, а не наколенные гемы без поддержки

    В любом случае импорт/экспорт КА прикрутить нетрудно так как (как правило) сам автомат это объект у которого можно создавать все состояния и переходы на лету вызывая методы этого объекта.
    Написано более трёх лет назад
  • Как установить rubyracer правильно(проблема в libv8)?

    vsuhachev @vsuhachev
    повнимательнее прочитал ваш вопрос: у вас проблема с letter_opener, а сработать должно было для решения проблем с компиляцией ассетов (кофескрипта). Так что да, вы правы, nodejs вам не нужен :)
    Написано более трёх лет назад
  • Асинхронные запросы к БД в Rails. Как?

    vsuhachev @vsuhachev
    Так в итоге что вы хотите получить? Статистику посещений? Непонятно причем тут какие-то асинхронные запросы...
    Написано более трёх лет назад
  • Rspec.Как передать в экшн edit админа?

    vsuhachev @vsuhachev
    Проблема может быть еще в подтверждении юзера через email

    воткните в фабрику этот код

    after(:build) do |user|
    user.skip_confirmation!
    end
    Написано более трёх лет назад
  • Как достать данные при связи has_many through?

    vsuhachev @vsuhachev
    ActiveRecord инстанцирует объекты того класса к которому вы обращаетесь, и по другому никак.

    Если вам нужно получить солянку из нескольких таблиц и агрегатные функции - используйте SQL и получайте двумерный массив.

    Но например для первого запроса - если вы выберите товары, а потом для каждого товара будете вызывать:

    product.product_storages.amount
    product.product_storages.storage_id

    то "n+1" не будет
    Написано более трёх лет назад
  • Rspec.Как передать в экшн edit админа?

    vsuhachev @vsuhachev
    тогда поищите в rails_helper.rb и раскомментируйте (или просто добавьте)

    Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
    Написано более трёх лет назад
  • Rspec.Как передать в экшн edit админа?

    vsuhachev @vsuhachev
    в spec/support/ создайте файл devise.rb

    RSpec.configure do |config|
      config.include Devise::TestHelpers, type: :controller
    end


    Если у вас RSpec3 нормально настроен, то он должен из support подхватывать
    Написано более трёх лет назад
  • Как достать данные при связи has_many through?

    vsuhachev @vsuhachev
    Описание связей нужно для валидации и сохранения объекта.

    Сложные запросы делаются напрямую через SQL, простые - примерно так как я описал. В вашем примере проблема n+1 запроса есть, но вообще-то вы не описали что вам нужно получить на выходе. Если товары, то лучше через Product. Если что-то другое, то возможно по другому лучше сделать.

    В принципе связи вы описали нормально.
    Написано более трёх лет назад
  • Как достать данные при связи has_many through?

    vsuhachev @vsuhachev
    Ну и вообще умные люди рекомендуют все выносить в скопы. Тогда ваш запрос мог бы выглядеть как-то так:

    Product.at_storage(1).with_category(1).with_nonzero_amount
    Написано более трёх лет назад
  • Как отправлять id, а не value в форме с Select2?

    vsuhachev @vsuhachev
    Ну тогда варианты:
    1) hidden input, у вас же все равно в контроллере какая-то своя хитрая логика работы с country?
    2) нажимайте на select2-контрол программно после инициализации

    А вообще конечно странно. По уму initSelection как раз и должен все решать. Попоробуйте переписать его так как в доках, то есть через использование переменной
    var data = { id: $(element).data('id'), text: $(element).val() }
    callback(data)

    Возможно в этом проблема (я не большой знаток js, могу ошибаться конечно)
    Написано более трёх лет назад
  • Как отправлять id, а не value в форме с Select2?

    vsuhachev @vsuhachev
    Попробуйте тэг select вместо input
    = f.input :country, as: :select
    Написано более трёх лет назад
  • Веб-разработка и выбор фреймворка/языка?

    vsuhachev @vsuhachev
    Жаль что смайлики нельзя ставить
    Написано более трёх лет назад
  • Где хранить мета-данные в rails?

    vsuhachev @vsuhachev
    Meridian312: А где еще? Но жестко привязывать ваши данные к колонкам таблицы не стоит, лучше множество записей (param, value) в таблице settings, и гибче и вам психологически проще т.к. записей много :)
    Написано более трёх лет назад
  • Хакнули сайт, идет перенаправление. В какую сторону копать?

    vsuhachev @vsuhachev
    Тогда ищите специалиста, который решит проблему. Не глядя в исходники вообще трудно что-то предполагать по вашему вопросу
    Написано более трёх лет назад
  • Как делать вычисления в модели?

    vsuhachev @vsuhachev
    Метод update уже есть в модели.

    Далее вам нужно создать класс OrderCheckoutService, внутри написать код который в транзакции переберет все order_item и для каждого вызовет update!

    Далее в контроллере нечто вроде
    def checkout
        order = Order.find(params[:order_id])
        oc_service = OrderCheckoutService.new(order)
    
        respond_to do |format|
          if oc_service.checkout
            format.html { render status: :ok }
          else
            format.html { render status: :unprocessable_entity }
          end
        end
      end


    Тоесть у вас есть созданный заказ, вы вызываете экшкн checkout, который резервирует товар на складе для этого заказа.

    Естественно, можно все это организовать и по другому. Тут никакой "магии" Рельс нет, просто берете и пишите код. И все :)
    Написано более трёх лет назад
  • ← Предыдущие
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • Следующие →
Самые активные сегодня
  • vabka
    Василий Банников
    • 7 ответов
    • 0 вопросов
  • vovka3003
    Владимир Шаблий
    • 7 ответов
    • 0 вопросов
  • gim0
    Андрей Мывреник
    • 6 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • Инна Фещук
    • 5 ответов
    • 0 вопросов
  • bingo347
    Дмитрий Беляев
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации