Rails - динамически создавайте поля формы и сохраняйте их - PullRequest
1 голос
/ 31 мая 2010

Я создаю рекламную систему, в которой пользователи могут динамически создавать «поля» для каждого типа объявлений.


Мои модели и примеры значений:

AdType:  
| id | name  
|----|-----  
| 1  | Hotel  
| 2  | Apartment  

AdOption:  
| id | ad_type_id | name  
|----|------------|-----
| 1  | 1          | Star rating  
| 2  | 1          | Breakfast included?  
| 3  | 2          | Number of rooms  

AdValue: (Example after saving)  
| id | ad_id | ad_option_id  | value  
|----|-------|---------------|------  
| 1  | 1     | 1 (stars)     | 5  
| 2  | 1     | 2 (breakfast) | true  

Ad: (Example after saving)  
| id | description     | etc....  
|----|-----------------|--------  
| 1  | very nice hotel | .......  

Допустим, я хочу создать новое объявление, и я выбрал Отель в качестве типа объявления. Затем мне нужно мое представление для динамического создания полей, как это: (я предполагаю?)

[Label] Star rating:  
[hidden_field :ad_id] [hidden_field :ad_option_id] [text_field :value]  

[Label] Breakfast included?  
[hidden_field :ad_id] [hidden_field :ad_option_id] [text_field :value]

А также, как сохранить значения при сохранении записи объявления


Надеюсь, это понятно. Если нет, просто спросите, и я постараюсь уточнить.

1 Ответ

0 голосов
/ 04 июня 2010

Начните с начального поля в вашей форме (AdType), затем используйте прослушиватели событий javascript, чтобы проверить, какая опция была выбрана, и заполните поле соответствующим html.

jQuery, вероятно, имеет плагины, которые сделают это за вас, но кодирование на обычном JavaScript не должно быть слишком сложным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...