0

我希望你们一切都好!

我是 RoR 和 JS 的新手,我正在努力将它们连接起来。

我有一个配方模型,它通过一个列表连接到一个成分模型。

class Recipe < ApplicationRecord
      
  has_many :lists, dependent: :destroy
  has_many :ingredients, through: :lists

我发现了 Stimulus,我正在尝试获取我所有的食谱,并且通过一个按钮,只获取蔬菜的。为此,我想我必须获取与食谱相关的成分列表:

def index
  recipes = Recipe.all
  respond_to do |format|
    format.html
    format.json { render json: { recipes: @recipes } }
  end
end

import { Controller } from "stimulus";

export default class extends Controller {
  static targets = [ 'filt' ];
  connect() {
    fetch('/recipes', { headers: { accept: "application/json" } })
      .then(response => response.json())
      .then((data) => {
        data.recipes.forEach((rec) => {
          const a = rec.ingredients;
          .......

但这似乎不是正确的方法。

(编辑)我的问题是我用我的 RoR 应用程序创建了一个数据库,但我找不到在我的刺激控制器中使用它的方法。我在刺激控制器中所能拥有的只是一个只有一个表的 JSON:我的食谱。我无权访问我的 RoR 模型中关联的表。有没有一种简单的方法可以在 Stimulus 中访问它们?

4

1 回答 1

0

控制器。我在刺激控制器中所能拥有的只是一个只有一个表的 JSON:我的食谱。我无权访问我的 RoR 模型中关联的表。有没有一种简单的方法可以在 Stimulus 中访问它们?

您必须使用 jbuilder 或序列化程序格式化生成的 JSON 响应以包含所需的关系数据。

于 2021-09-27T17:47:12.110 回答