• Как много программист Ruby On Rails должен знать?

    @rsi
    software engineer
    А что должен знать водитель?
    Водить камаз или мотоцикл?
    Ремонтировать автомобиль?
    Знать объездные пути по трассе Маганд - Бобруйск?

    Может ответы на эти вопросы зависят от конкретного места работы? Профессиональный гонщик и тракторист водители, но знания разные.

    Один работает на камазе только в черте города, второй ездит по трассе. Они оба водители камаза, но первый в случае поломки может просто отбуксировать машину в гараж и отдать механикам, второй должен уметь ремонтировать что то сам.

    Когда вы уже поймете, что в любой профессии шаблон работает только на самых низших слоях и то не 100% Во всех остальных случаях очень большой выбор вариантов и требуемых знаний который зависит от вашего места работы и желания.

    Пожалуйста просветите почему каждый день появляются однотипные вопросы. Что конкретно вас побудило его задать? Почему вы не просто не отрыли список вакансий с требованиями?
    Ответ написан
    Комментировать
  • [param is missing or the value is empty: task] Как решить?

    Jeiwan
    @Jeiwan
    param is missing or the value is empty: task

    Экшен ожидает, что придет параметр 'task', но он не приходит. Почему? А потому, что вы его не отсылаете. То есть у вас неправильно оформлена форма. А точнее, у вас вообще формы нету.

    {"authenticity_token"=>"Y8hE4tSk/qUL1xZDpCgvriUwYhmwfzeH3iwfxa7NB+C6DEKkvJLAQ4V3b6yTw4QUxOMPUTxoGKv36PYxpzmCoQ==", "id"=>"10"}

    Вот доказательство, что 'task' не передается.

    if @task.update(task_params)

    Зачем этот апдейт нужен? Какова логика? Зачем обновлять весь таск?

    @task.complete_task = true

    Вообще, так в контроллерах делать не комильфо. С БД должна работать модель. Лучше сделать метод 'complete!' в модели и в контроллере просто вызывать @task.complete!

    Ну и роут не совсем верный.
    post 'tasks/:id/complete', to: 'tasks#complete', as: 'complete_task'
    – так бы было правильнее. Соответственно и экшен переименовать.

    Или если делать ресурс:
    resources :tasks do
      post :complete, on: :member
    end


    Как исправить, думаю, теперь догадаетесь :)
    Ответ написан
    3 комментария
  • [param is missing or the value is empty: task] Как решить?

    viktorvsk
    @viktorvsk
    Во-первых, сделайте
    # config/routes.rb
    resources :tasks do
     match :complete_todo, on: :member, as: :finished_task, via: :post
    end


    А дальше, пока непонятно, что за ошибка и где. Порядок дебага:
    1. Убедиться, что существует нужный роут и формируется правильная ссылка с правильным методомо (пост, гет) и форматом (html, js и т.д.)
    2. Убедиться, что запрос попадает в нужный экшн
    3. Убедиться, что таск выбран

    Про попытке отметить задачу выполненной вылетает ошибка: param is missing or the value is empty: task


    Непонятно, ошибка на клиенте или на сервере. Непонятно, что за ошибка (у эксепшенов есть классы). Непонятно, в каком месте возникает (у эксепшенов есть трейс)

    Ну, а вообще, скорее всего, вы забыли про стронг парамс и просто так написали:
    @task.update(task_params)

    и не обновили сам метод:
    private
    def task_params
    params.require(:task)
    ...
    end


    Или вообще не написали его
    Ответ написан
    5 комментариев
  • Привязка домену к проекту на heroku?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Мой рецепт: хостим домен на Cloudflare, а затем привязываем его как алиас к домену третьего уровня, что выдается Хероку. И не забудьте в панели хероку указать этот домен.
    Ответ написан
    3 комментария