Started Ingredient#create
This commit is contained in:
parent
faef248449
commit
0dcb13a065
@ -9,8 +9,35 @@ class IngredientsController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
@ingredient = Ingredient.new(ingredient_params.update(project: @project))
|
||||||
|
if @ingredient.save
|
||||||
|
flash[:notice] = 'Created new ingredient'
|
||||||
|
redirect_to project_ingredients_url(@project)
|
||||||
|
else
|
||||||
|
@ingredients = @project.ingredients
|
||||||
|
render :index
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def ingredient_params
|
||||||
|
params.require(:ingredient).permit(
|
||||||
|
:name,
|
||||||
|
:ref_amount,
|
||||||
|
:ref_unit_id,
|
||||||
|
:group,
|
||||||
|
nutrients_attributes:
|
||||||
|
[
|
||||||
|
:id,
|
||||||
|
:quantity_id,
|
||||||
|
:amount,
|
||||||
|
:unit_id,
|
||||||
|
:_destroy
|
||||||
|
]
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -4,8 +4,12 @@ class Ingredient < ActiveRecord::Base
|
|||||||
}
|
}
|
||||||
|
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
has_many :nutrients
|
belongs_to :ref_unit, class_name: 'Unit'
|
||||||
|
has_many :nutrients, inverse_of: :ingredient
|
||||||
accepts_nested_attributes_for :nutrients, allow_destroy: true
|
accepts_nested_attributes_for :nutrients, allow_destroy: true
|
||||||
|
#reject_if: proc { |attrs|
|
||||||
|
# attrs['quantity_id'].blank? && attrs['amount'].blank?
|
||||||
|
#}
|
||||||
|
|
||||||
validates :project, associated: true
|
validates :project, associated: true
|
||||||
validates :name, presence: true, uniqueness: {scope: :project_id}
|
validates :name, presence: true, uniqueness: {scope: :project_id}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
class Nutrient < ActiveRecord::Base
|
class Nutrient < ActiveRecord::Base
|
||||||
belongs_to :ingredient
|
belongs_to :ingredient, inverse_of: :nutrients
|
||||||
|
belongs_to :quantity
|
||||||
|
belongs_to :unit
|
||||||
|
|
||||||
validates :ingredient, presence: true, associated: true
|
validates :ingredient, presence: true, associated: true
|
||||||
validates :quantity, presence: true, associated: true
|
validates :quantity, presence: true, associated: true, uniqueness: {scope: :ingredient_id}
|
||||||
validates :amount, numericality: {greater_than: 0}
|
validates :amount, numericality: {greater_than: 0}
|
||||||
validates :unit, presence: true, associated: true
|
validates :unit, presence: true, associated: true
|
||||||
end
|
end
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
</p>
|
</p>
|
||||||
<p><%= f.select :group, group_options, required: true %></p>
|
<p><%= f.select :group, group_options, required: true %></p>
|
||||||
<% @ingredient.nutrients.each_with_index do |n, index| %>
|
<% @ingredient.nutrients.each_with_index do |n, index| %>
|
||||||
<%= f.fields_for :nutrient, n, index: '' do |ff| %>
|
<%= f.fields_for 'nutrients_attributes', n, index: '' do |ff| %>
|
||||||
<p class="nutrient">
|
<p class="nutrient">
|
||||||
<%= ff.select :quantity_id, quantity_options,
|
<%= ff.select :quantity_id, quantity_options,
|
||||||
label: (index > 0 ? '' : :field_nutrients) %>
|
label: (index > 0 ? '' : :field_nutrients) %>
|
||||||
<%= ff.number_field :amount, {size: 8, label: ''} %>
|
<%= ff.number_field :amount, {size: 8, min: 0, step: :any, label: ''} %>
|
||||||
<%= ff.select :unit_id, unit_options, label: '' %>
|
<%= ff.select :unit_id, unit_options, label: '' %>
|
||||||
<%= ff.check_box :_destroy, {style: "display:none", label: ''} %>
|
<%= ff.check_box :_destroy, {style: "display:none", label: ''} %>
|
||||||
<%= link_to t(".button_delete_nutrient"), '#',
|
<%= link_to t(".button_delete_nutrient"), '#',
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th><%= l(:field_name) %></th>
|
<th><%= l(:field_name) %></th>
|
||||||
<th><%= l(:field_ref_amount) %></th>
|
<th><%= l(:field_ref_amount) %></th>
|
||||||
<th><%= l(:field_ref_unit) %></th>
|
|
||||||
<th><%= l(:field_group) %></th>
|
<th><%= l(:field_group) %></th>
|
||||||
<th><%= l(:field_source) %></th>
|
<th><%= l(:field_source) %></th>
|
||||||
<th style="width:15%"><%= l(:field_action) %></th>
|
<th style="width:15%"><%= l(:field_action) %></th>
|
||||||
@ -39,9 +38,9 @@
|
|||||||
<% @ingredients.each do |i| %>
|
<% @ingredients.each do |i| %>
|
||||||
<tr id="ingredient-<%= i.id %>" class="ingredient <%= 'hidden' if i.hidden %>">
|
<tr id="ingredient-<%= i.id %>" class="ingredient <%= 'hidden' if i.hidden %>">
|
||||||
<td class="ingredientname"><%= i.name %></td>
|
<td class="ingredientname"><%= i.name %></td>
|
||||||
<td class="ref_amount"><%= i.ref_amount %> [<%= i.ref_unit %>]</td>
|
<td class="ref_amount"><%= i.ref_amount %> [<%= i.ref_unit.shortname %>]</td>
|
||||||
<td class="group"><%= i.group %></td>
|
<td class="group"><%= i.group %></td>
|
||||||
<td class="source"><%= i.source %></td>
|
<td class="source"><%#= i.source %></td>
|
||||||
<td><%= delete_link ingredient_path(i), data: {} %></td>
|
<td><%= delete_link ingredient_path(i), data: {} %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
@ -4,6 +4,7 @@ en:
|
|||||||
field_action: 'Action'
|
field_action: 'Action'
|
||||||
field_ref_amount: 'Reference amount'
|
field_ref_amount: 'Reference amount'
|
||||||
field_group: 'Group'
|
field_group: 'Group'
|
||||||
|
field_source: 'Source'
|
||||||
field_nutrients: 'Nutrients:'
|
field_nutrients: 'Nutrients:'
|
||||||
field_domain: 'Domain'
|
field_domain: 'Domain'
|
||||||
field_parent_quantity: 'Parent'
|
field_parent_quantity: 'Parent'
|
||||||
|
Reference in New Issue
Block a user