Otra pregunta para principiantes.has_many build method, Rails
El objetivo: cada ingrediente puede tener cero o más conversiones de unidades asociadas. Quiero poner un enlace para crear una nueva conversión de unidad en la página que muestre un ingrediente específico. No puedo hacer que funcione.
Ingrediente Modelo: Conversión
class Ingredient < ActiveRecord::Base
belongs_to :unit
has_many :unit_conversion
end
Unidad Modelo:
Controlador de conversiónclass UnitConversion < ActiveRecord::Base
belongs_to :Ingredient
end
unidad (nueva)
def new
@ingredient = Ingredient.all
@unit_conversion = @ingredient.unit_conversions.build(params[:unit_conversion])
if @unit_conversion.save then
redirect_to ingredient_unit_conversion_url(@ingredient, @comment)
else
render :action => "new"
end
end
Rutas pertinentes:
map.resources :ingredients, :has_many => :unit_conversions
Mostrar Ingrediente Enlace:
<%= link_to 'Add Unit Conversion', new_ingredient_unit_conversion_path(@ingredient) %>
Este es el error:
NoMethodError in Unit conversionsController#new
undefined method `unit_conversions' for #<Array:0x3fdf920>
RAILS_ROOT: C:/Users/joan/dh
Application Trace | Framework Trace | Full Trace
C:/Users/joan/dh/app/controllers/unit_conversions_controller.rb:14:in `new'
Ayuda! Estoy todo mezclado sobre esto.