Я просто изучаю рельсы, и я столкнулся с некоторой проблемой. Позвольте мне начать с простой пробой моего приложения - это поваренная книга (сортов)Использование нескольких элементов collection_select в форме с несколькими моделями
- Рецепты имеют один или несколько ингредиентов (тунец, селезенке и т.д.)
- Ингредиенты имеют один блок (унции, фунты, и т.д.)
- Units вытягивают из справочной таблицы
Вот скриншот, чтобы помочь прояснить вещи дальше: Form Mockup
Her Моя проблема: мои имена элементов коллекции_select должны быть чем-то вроде unit[id][]
Вместо этого все они только что названы unit[id]
. Вот фрагмент кода, я использую:
collection_select( :unit, :id, @units, :id, :name, options = { :prompt => "Please Select", :class => "ingredient_unit", :name => "unit[][]", :id => "unit:" + i.to_s() } );
Однако, это то, что он выводит:
<select id="unit_id" name="unit[id]"> <option value="">Please Select</option> <option value="1">Ounces</option> </select> ...
Теперь в PHP, эти выпадающие назвали бы unit[]
. Неужели я ошибаюсь?
Спасибо за помощь
Спасибо за ссылку, это помогло LOT. Что касается параметра ': name', это было скорее предположением. С помощью других помощников формы вы можете передать имя ': name', чтобы указать имя ввода текста или еще что-то. Что касается моей цели формы, это было создание нового рецепта и назначение ингредиентов для этого рецепта и единиц для каждого ингредиента. Что касается примечания 'unit []': в PHP, если вы хотите указать массив элементов формы, вы добавляете '[]' в конец имени элемента, а затем '$ _POST' будет обрабатывать' $ _POST [" unit "]' как массив. Надеюсь, это поможет. –
Просто предупреждение, код из некоторых вещей, о которых он говорит, был заменен вложенными атрибутами. http://railscasts.com/episodes/196-nested-model-form-part-1 –