У меня есть recipe
форма, которая также has_many
ингредиенты. Через некоторые (помимо сути) из выбора шаблонов я получаю параметры, которые выглядят так, как будто они передаются в мое действие «create» на контроллере «Recipes»:
{
"commit" =>"Create Recipe",
"authenticity_token" =>"qIeydCyOetcmu2bba3BM9X7HSXXtiFt7cuyuK7yvTPc=",
"utf8" =>"✓",
"recipe" => {
"title" =>"",
"url" =>"",
"site" =>"",
"instructions" =>"",
"ingredients_attributes" => {
"0" => {
"quantity" =>"5",
"name" => "flour"
}
}
}
}
Я пытаюсь вбить это в модель, чтобы сохранить все сразу, но без пользы от конструктора форм. Я пробовал различные способы сохранить это в моей модели, когда я звоню @recipe.save
, но всегда кажется, что это игнорируется. Я пытаюсь превратить это в массив, который ожидала бы модель, и это тоже не работает. Вот код контроллера, с которым я возился:
def create
arrayIngredients = [];
params[:recipe][:ingredients_attributes].values.each do |value|
arrayIngredients.push value
end
@recipe = Recipe.new(params[:recipe])
@recipe.ingredients.build = arrayIngredients
# at this point this is [{"name"=>"flour"}] and so forth
@recipe.user_id = current_user.id
@recipe.title = @recipe.inspect # just debugging purposes
respond_to do |format|
if @recipe.save... # do stuff
Мне кажется, я очень близок к этому, но мне не хватает одной ключевой вещи, чтобы сделать это правильно сохраненным (в настоящее время в окне терминала он показывает NULL во всех операторах INSERT)
Спасибо за любой вклад!