Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从rails以Json格式呈现多个变量以进行响应_Ruby On Rails_Reactjs - Fatal编程技术网

Ruby on rails 从rails以Json格式呈现多个变量以进行响应

Ruby on rails 从rails以Json格式呈现多个变量以进行响应,ruby-on-rails,reactjs,Ruby On Rails,Reactjs,我想显示从rails后端到react前端的膳食列表。另外,我想加上一个具体的日期 以下是我到目前为止的情况: U控制器.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: comp

我想显示从rails后端到react前端的膳食列表。另外,我想加上一个具体的日期

以下是我到目前为止的情况:

U控制器.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))
}
我想在render方法中添加
@date
,这样我可以执行以下操作:

this.setState({
     meals: response.data.meals,
     date: response.data.date
            });
但到目前为止,我所尝试的一切都失败了。我试过这样的方法:

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

但这两种解决方案都将我的
@fends
作为一个大字符串发送,就像
“[{},{},{},{}]
一样,而不是将其作为对象数组呈现

你知道我能做这件事吗

您应该在此处使用if
to_json

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

它到底是如何不起作用的?在你决定在那里添加更多的筑巢之前,它工作了吗?Hi@potashin,当我只有我的
餐食
要渲染时,我工作了。数据是从后端正确获取的,但在react上引发了错误:
reponse.data.fines
似乎不起作用。@potashin我刚刚意识到我的膳食是作为一个大字符串而不是散列数组呈现的。我更新了我的帖子,让它更清晰。非常感谢您的帮助@potashin!它做得很好。
render json: { meals: @meals.as_json(include: :restaurant), date: @date }