сделать несколько переменных в Json от рельсов, чтобы реагировать - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу отобразить список приемов пищи от моего рельсового бэкенда до моего интерфейса реакции. Кроме того, я хотел бы добавить конкретную дату.

Вот что у меня есть:

meals_controller.rb

  def index
    @meals = Meal.where(week_day: Date.today.cwday).order('random()')
    @date = DateTime.now

    render json: @meals.to_json(include: :restaurant)
  end

MealsPage.js:

componentDidMount() {
    axios.get('/meals.json')
    .then(response => {
        this.setState({
            meals: response.data
        });
    })
    .catch(error => console.log(error))
}

Я хотел бы добавить @date в методе рендеринга, чтобы я мог сделать что-то вроде:

this.setState({
     meals: response.data.meals,
     date: response.data.date
            });

Но все, что я до сих пор пробовал, провалилось. Я пробовал такие вещи, как:

render json: [@meals.to_json(include: :restaurant), @date]

или

render json: {meals: @meals.to_json(include: :restaurant), date: @date}

Но оба эти решения отправляют мой @meals как одну большую строку, такую ​​как "[{}, {}, {}]", вместо того, чтобы отображать ее как массив объектов.

Есть идеи, как я могу сделать эту работу?

1 Ответ

0 голосов
/ 19 ноября 2018

Вместо этого следует использовать as_json, если to_json здесь:

render json: { meals: @meals.as_json(include: :restaurant), date: @date }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...