我的菜谱模型如下
has_many :quantities
has_many :ingredients, :through => :quantities, :uniq => true
has_many :sizes, :through => :quantities, :uniq => true以及试图重构的控制器动作
class Admin::QuantitiesController < Admin::AdminController
layout 'admin'
authorize_resource :class => :controller
def create
recipe = Recipe.find(params[:recipe_id])
values = params[:quantity][:ingredient]
@quantities = Quantity.find(values.keys)
@quantities_errors = {}
@quantities.each do |quantity|
if quantity.value != values[quantity.id.to_s]
quantity.value = values[quantity.id.to_s]
if quantity.valid?
quantity.save
else
@quantities_errors[quantity.id] = quantity.errors.messages
end
end
end
unless @quantities_errors
redirect_to edit_admin_recipe_path(recipe), notice: 'Ingredients was successfully added.'
else
redirect_to edit_admin_recipe_path(recipe), alert: @quantities_errors
end
end
end发布于 2013-01-27 19:53:47
一些注意事项:
edit_admin_recipe表单,所以您应该发布到Admin::RecipesController#update。https://codereview.stackexchange.com/questions/20916
复制相似问题