我正在运行 Rails 4 和 Ruby 2。
我正在创建一个应用程序,您可以在其中通过每餐跟踪您的卡路里和常量营养素。
我正在添加一个用餐收藏页面,用户可以在其中添加他们一直吃的餐点。我通过收藏夹做到了这一点:布尔迁移。
当用户创建新餐点时,我想向他们展示他们已经保存的收藏夹的下拉框,例如current_user.meals.where(favourite: true)
.
当他们从下拉列表中单击他们最喜欢的一项时,我希望该信息能够填充表格中的蛋白质、碳水化合物和脂肪输入。
做这个的最好方式是什么?
膳食控制器:
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 %>
谢谢!