API-интерфейс вывода Rails - PullRequest
0 голосов
/ 26 июня 2018

У меня есть вспомогательный метод

def greet
    now = Time.now
    today = Date.today.to_time

    morning = today.beginning_of_day
    noon = today.noon
    evening = today.change( hour: 17 )
    night = today.change( hour: 20 )
    tomorrow = today.tomorrow

    if (morning..noon).cover? now
      'Good Morning'
    elsif (noon..evening).cover? now
      'Good Afternoon'
    elsif (evening..night).cover? now
      'Good Evening'
    elsif (night..tomorrow).cover? now
      'Good Evening'
    end
end

Я хотел бы иметь возможность получать выходные данные с помощью внешнего запроса GET. Есть ли кто-нибудь, кто может помочь мне понять, как это можно сделать?

1 Ответ

0 голосов
/ 26 июня 2018

Прежде всего, вам понадобится контроллер. Вы можете создать его на app/controllers/greetings_controller.rb

Содержимое этого контроллера будет примерно таким:

class GreetingsController < ApplicationController
    def greet
        now = Time.now
        today = Date.today.to_time

        morning = today.beginning_of_day
        noon = today.noon
        evening = today.change( hour: 17 )
        night = today.change( hour: 20 )
        tomorrow = today.tomorrow

        if (morning..noon).cover? now
            'Good Morning'
        elsif (noon..evening).cover? now
            'Good Afternoon'
        elsif (evening..night).cover? now
            'Good Evening'
        elsif (night..tomorrow).cover? now
            'Good Evening'
        end
    end
end

Теперь у вас есть контроллер. Следующее, что вы хотите сделать, это прикрепить к нему маршрут. Откройте файл config/routes.rb.

Добавить это к файлу:

get '/greet', to: 'greetings#greet'

Единственное, что вам нужно изменить, это ваш #greet ответ. Он должен вызвать метод format.json { render json: "Content" }, чтобы он работал.

Измените его на:

if (morning..noon).cover? now
    format.json { render json: 'Good Morning' }
elsif (noon..evening).cover? now
    format.json { render json: 'Good Afternoon' }
elsif (evening..night).cover? now
    format.json { render json: 'Good Evening' }
elsif (night..tomorrow).cover? now
    format.json { render json: 'Good Evening' }
end

Запустите rails server в своем терминале и откройте браузер. Маршрут /greet.json должен работать.

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