Die Sache ist: Ich mache eine grundlegende Diät-Planer, der Mahlzeiten, Zutaten und Mengen hat. Wenn ein Benutzer eine Mahlzeit macht, wählt er die Zutaten aus und stellt die Menge davon ein. Alles, was ich will, ist, in der Mahlzeit Index Seite Zeilen mit den Zutaten und ihre Mengen anzuzeigen.Anzeige der Join-Tabellenzeile in der Ansicht (has_many through association)
<% meal.ingredients.each do |ingredient| %>
<tr>
<td><%= ingredient.name %></td>
<% ingredient.quantities.each do |q| %>
<td><%= q.quant %></td>
<% end %>
<td><%= ingredient.unit %></td>
<td><%= ingredient.carb %></td>
<td><%= ingredient.prot %></td>
<td><%= ingredient.fat %></td>
</tr>
<% end %>
Dies zeigt alle Mengen an, die mit der ausgewählten Zutat verknüpft sind. Ich poste keine Modelle, weil ich denke, dass es zu offensichtlich ist. Dank
EDIT
db/schema.rb
create_table "ingredients", force: :cascade do |t|
t.string "name"
t.string "unit"
t.float "carb"
t.float "prot"
t.float "fat"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "meals", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "quantities", force: :cascade do |t|
t.float "quant"
t.integer "ingredient_id"
t.integer "meal_id"
end
views/Mahlzeiten/index.html.erb
<% @meals.each do |meal| %>
<div class="x_panel">
<div class="x_title">
<h2><%= meal.name %></h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
<ul class="dropdown-menu" role="menu">
<li><%= link_to 'Show', meal %>
</li>
<li><%= link_to 'Edit', edit_meal_path(meal) %>
</li>
</ul>
</li>
<li><%= link_to '', meal, method: :delete, data: { confirm: 'Are you sure?' }, class: "fa fa-close" %>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<table class="table table-striped">
<tbody>
<% meal.ingredients.each do |ingredient| %>
<tr>
<td><%= ingredient.name %></td>
<% ingredient.quantities.each do |q| %>
<td><%= q.quant %></td>
<% end %>
<td><%= ingredient.unit %></td>
<td><%= ingredient.carb %></td>
<td><%= ingredient.prot %></td>
<td><%= ingredient.fat %></td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div>
<% end %>
<%= link_to 'New Meal', new_meal_path %>
Die Zahlen hervorgehoben Mengen von Bananen sind Zutat. Aber für das Essen ist es verbunden, ich will nur "123". Ich denke, es ist ein Problem von Abfragen und ich finde nicht heraus, wie es zu beheben ist.
Können Sie Beispiele für Zeilendaten und Ausgaben posten? Es ist schwierig zu sagen, was genau Sie vorhaben. –
Ich habe mehr Code hinzugefügt und ein wenig weiter erklärt. Wenn du etwas anderes brauchst, sag es einfach :) Danke –
Damit ich verstehe, was du verlangst, willst du nur, dass die Zeile 'Banana 123' zeigt und keine anderen Werte? –