Просто добавьте ингредиенты через запятую.
Это может быть text_field_tag
, потому что вам нужно будет проанализировать его и сохранить каждое слово, разделенное запятой, перед сохранением.
class Recipie < ActiveRecord::Base
has_many :ingredients
before_save :add_ingredients
attr_accessor :ingredients_to_parse #this will be the text_field_tag
def add_ingredients
#create an array of ingredients from #ingredients_to_parse
#then loop through that array i.e. you have your ingredients_array
ingredients_array.each do
Ingredient.create(:recipe => self, :other_params => 'stuff')
end
#there are a lot of ways, I just used create to show you how to add it
end
end
Итак, в вашей форме просто есть это text_field_tag
<%= form_for(@recipe) do |f| %>
<% f.text_field :name %>
<% text_field_tag :ingredients_to_parse %>
<%= f.submit %>
<% end %>
Затем вы можете добавить Javascript, так что каждый раз, когда в этом добавляется запятая text_field_tag
, вы можете просто использовать некоторые js для таких причудливых вещей.
Таким образом, он будет работать, когда серверы работают медленно, js не работает должным образом и т. Д. Всегда полезно сначала запустить HTML-версию.
Удачи, дайте мне знать, если у вас есть вопросы / проблемы.