Rails 4 と Ruby 2 を実行しています。
食事ごとにカロリーと主要栄養素を追跡できるアプリを作成しています。
ユーザーが一貫して食べる食事を追加できる食事のお気に入りページを追加しています。私は favourites:boolean 移行を通じてこれを行いました。
ユーザーが新しい食事を作成するとき、私は彼らがすでに保存したお気に入りのドロップダウンボックスをcurrent_user.meals.where(favourite: true)
.
彼らがドロップダウンからお気に入りの 1 つをクリックすると、その情報をフォームに入力するタンパク質、炭水化物、脂肪を入力したいと思います。
これを行う最善の方法は何ですか?
食事コントローラー:
class MealsController < ApplicationController
.
.
.
def new
@meal = current_user.meals.build
end
def create
@meal = current_user.meals.build(meal_params)
respond_to do |format|
if @meal.save
format.html { redirect_to root_path, notice: 'Meal was successfully added.' }
else
format.html { render action: 'new', notice: 'Meal was not added.' }
end
format.js
end
end
.
.
.
private
def set_meal
@meal = Meal.find(params[:id])
end
.
.
.
end
食事フォームの新規作成/編集
<%= form_for(@meal) do |f| %>
.
.
.
<div class="field inline">
<%= f.label :protein %> (g)<br>
<%= f.text_field :protein %>
</div>
<div class="field inline middle">
Carbs (g)<br>
<%= f.text_field :carbohydrates %>
</div>
<div class="field inline right">
<%= f.label :fats %> (g)<br>
<%= f.text_field :fats %>
</div>
<div class="field actions">
<%= f.check_box :favourite, class: "favourites" %> Add to Favourites?
</div>
<div class="actions">
<%= f.submit "Save", class: "btn btn-large" %>
<% if current_page?(edit_meal_path(@meal)) %>
<%= link_to "Delete", @meal, class: "btn btn-large", method: :delete, data: { confirm: "Are you sure?" } %>
<% end %>
</div>
<% end %>
ありがとう!