5

У меня есть требование, которое немного сложно с началом работы, и я ищу некоторую помощь. У меня есть три таблицы: Одеяния, категории и материалы. Рассмотрим таблицу одеяний содержатВложенная выпадающая шкатулка и коробка с несколькими выборами, основанная на каждом выпадающем списке в рельсах?

----- Mens носить

----- детская одежда

и у меня есть страница, чтобы добавить одежду и при добавлении одеяний мне нужно иметь падение вниз, который должен отображать категории. При выборе категорий материалы, относящиеся к выбранной категории, должны отображаться в окне выбора нескольких элементов, из которых мы можем выбрать несколько материалов, которые должны быть сохранены в таблице.

И выпадающее меню, чтобы выбрать категории, должно быть вложенным, так как мы также можем выбрать более одной категории, и каждый раз, когда добавляется категория, после раскрытия категории следует отображать раскрывающийся список, относящийся к этой категории.

Рассмотрим следующий образ, который четко объясняет

enter image description here

Как я могу создать таблицу для сохранения значений, которые я выбираю из этих таблиц?

Update:

class Apparel < ActiveRecord::Base 
    has_and_belongs_to_many :categories 
end 

class Category < ActiveRecord::Base 
    has_and_belongs_to_many :apparels 
    has_and_belongs_to_many :materials 
end 

class Material < ActiveRecord::Base 
    has_and_belongs_to_many :categories 
end 

Выше приведены модели и ассоциации между теми. Я хочу отобразить раскрывающееся меню, которое должно содержать категории и многое другое по этому раскрывающемуся списку, если выбрано, окно выбора нескольких отображений должно отображаться под каждым раскрывающимся списком, чтобы выбрать материалы из него или сказать мне, могу ли я сделать, как сохранить мульти -выберите, а не выпадайте, и при каждом выборе другого поля многоэкранного выбора должны быть заполнены значения, связанные с ним. Следующее изображение четко объяснить

enter image description here

+0

Я не уверен, если вы спросите о 1: обновите раскрывающийся список при выборе категории/добавлении одежды или 2: как сохранить эти данные в базе данных? Если 2, то, пожалуйста, добавьте код, объясняющий отношения между вашими моделями. – jokklan

+0

Хай jokklan. Я ищу оба. Но до этого я еще раз объясню. Когда я создаю новую одежду, мне также нужно выбрать категорию, такую ​​как штаны, рубашки, брюки и т. Д. И это больше похоже на вложенное выпадающее меню, которое можно выбрать, нажав кнопку «Добавить» и выбрав категорию для материалов, связанных с выбранным категория должна отображаться в окне выбора нескольких элементов, где мы можем выбрать несколько элементов. Таким образом, это поможет вам лучше понять первое. Я еще не начал, но скоро попытаюсь обновить код, чтобы не пропустить хорошую помощь. Спасибо, что пришли снова. – logesh

ответ

5

мне нужно немного больше информации, особенно некоторые примеры кода, чтобы действительно помочь вам. Однако вот некоторые ресурсы, чтобы вы начали. Когда вы написали что-то, то, пожалуйста, вернуться и я/другие могут помочь вам в дальнейшем :)

  • Railscasts #88 - Dynamic select menus (revised) - Это railscast объясняет, как сделать динамическое меню выбора/раскрывающимся, эффекты смены материалов при выборе категории.
  • Railscasts #196 - Nested model form (revised) - Этот railscast показывает, как динамически добавлять связанные записи с помощью accepts_nested_attributes_for. Это не обязательно важно для вас, но, по крайней мере, поможет вам понять, как создать многозадачную форму.

Update: Как динамически заполнить выпадающее/выберите меню

Ok так что вы хотите, чтобы иметь меню выбора (также называется выпадающее меню) из одеяний, который обновляет каждый раз, когда вы выбираете категорию (в меню множественного выбора).Для этого вы можете использовать метод, описанный в Railscasts #88 - Dynamic select menus (revised), но позвольте мне объяснить подробнее здесь:

Сначала мы хотим создать представление:

<%= form_for @object do |f| %> # don't know what your form is for, but you can just change it accordantly 
    <%= f.collection_select(:category_ids, Category.all, :id, :name, {}, {:multiple => true, :id => 'category_select'}) 
    <%= f.grouped_collection_select :apparel_id, Category.all, :apparels, :name, :id, :name, {}, {:id => 'appare} %> 
<% end %> 

Затем мы добавим некоторые JavaScript в каталоге ресурсов:

jQuery -> 
    $('#apparel_select').hide() # hide the select menu 
    apparels = $('#apparel_select').html() # get all the apparels in groups (the option and optgroup tags) 

    $('#category_select').change -> # when selecting/deselecting a category, should we update the apparels select menu 
    categories = $('#sel9UX :selected').map -> # find the selected categories 
     $(this).text() 

    options = {} 
    $.each categories, (index, value) -> # find all the optgroups that should be shown 
     options[value] = $(apparels).filter("optgroup[label='#{value}']") 

    $('#apparel_select').html("") # empty the select menu 
    $.each options, (key, value) -> # add each category group we have selected 
     $('#apparel_select').append(value) 

    $('#apparel_select').show() # show the select menu again 

Это написано на CoffeeScript с помощью jQuery. Если вы не используете CoffeeScript, напишите комментарий, и я попытаюсь записать его в стандартном синтаксисе javascript.

+0

Я обновил вопрос. – logesh

+0

И я обновил ответ;) – jokklan

+0

Я разместил новый вопрос в http://stackoverflow.com/questions/17546917/how-to-include-both-dynamic-select-menu-and-nested-attributes-together -на-рельсы, пожалуйста, помогите мне. – logesh