Witam,
prosty projekt książki kucharskiej na potrzeby nauki
[code]class Recipe < ActiveRecord::Base
has_many :compositions
has_many :ingredients, :through => :compositions
class Composition < ActiveRecord::Base
belongs_to :recipe
belongs_to :ingredient
class Ingredient < ActiveRecord::Base
has_many :compositions
has_many :recipes, :through => :compositions[/code]
I teraz tworząc nowy przepis chcę mieć możliwość wybrania składnika z listy (i podania jego ilości - string).
Coś takiego działa tak jak chcę:
<select name="recipe[compositions_list][][ingredient_id]" id="recipe_compositions__ingredient_id" onchange="" size="1">
<option value="1">Marchewka</option>
<option value="2">Wieprzowina</option>
</select>
Działa też jak opcje wypiszę za pomocą helpera (.find tylko na potrzeby przykładu):
<%= options_from_collection_for_select(Ingredient.find(:all, :order => "name"), 'id', 'name') %>
Jednak nie potrafię tego zamknąć w helper select
Próbowałem (@ingredients jest odpowiednio ustawione w controlerze):
<%= select("recipe[compositions_list]", "ingredient_id", @ingredients) %>
ale dostaję: error500 (expected Array (got Hash) for param `compositions_list’)
Oraz (dodatkowe nawiasy kwadratowe, żeby zrobić Array):
<%= select("recipe[compositions_list][]", "ingredient_id", @ingredients) %>
ale dostaję: `@recipe[compositions_list]’ is not allowed as an instance variable name.
No i już nie mam pojęcia. Możecie podpowiedzieć co robię nie tak?