![]() |
|
![]() ![]() ![]() |
|
RedAlliance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.12.2010 Репутация: нет Всего: нет |
доброго времени суток!помогите,пожалуйста,решить проблемку..
во вьюхе для регистрации использую select_tag: <p> <%= f.label :faculty %><br /> <%if not @faculty == nil %> <%= select_tag :faculty,options_for_select (@faculty.map {|p| [p.faculty,p.dean]})%><span style="color:red">*</span><br /> </p> <p> <%= f.label :group %><br /> <%if not @group == nil %> <%= select_tag :group,options_for_select (@group.map {|p| [p.group_number,p.faculty]})%><span style="color:red">*</span><br /> </p> во-первых,он мне почему-то вместо строчек "факультет, декан" и "группа,факультет" выдаёт только "факультет" и "группа", а во-вторых,при выборе из этого неполноценного списка выдаёт ошибки: # Faculty can't be blank # Group can't be blank которые соответственно написаны в модели:то есть он не видит выбора-переменные пустые,получается.. объясните,пожалуйста,что я делаю неверно... Это сообщение отредактировал(а) RedAlliance - 11.2.2011, 21:24 |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
ты не читаешь документацию и как следствие вызываешь хелперы со случайными параметрами, а они вообще-то кое-что значат... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
RedAlliance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.12.2010 Репутация: нет Всего: нет |
помогите,пожалуйста,исправить ошибку..как сделать так,чтоб показывало именно то,что мне нужно?
|
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
В твоём случае, если пользователь выбирает из списка p.faculty, то :faculty получает значение p.dean. Это сообщение отредактировал(а) source777 - 11.2.2011, 22:57 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
RedAlliance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.12.2010 Репутация: нет Всего: нет |
вы правы..там именно декан..
а почему тогда вылезают ошибки как будто пусто?ведь тогда там декан,как минимум.. не подскажите,где почитать по селект_тэгу?я почему-то только на форумы натыкаюсь,где решаются конкретные проблемы тех пользователей,которые собственно задают вопрос..а на информацию по самому селект_тэгу не дают ссылок.. |
|||
|
||||
RedAlliance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.12.2010 Репутация: нет Всего: нет |
ну неужели так сложно ответить,в чём дело и как стоит сделать,чтоб работало?
помогите,пожалуйста.. |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
ну неужели так сложно заглянуть в документацию? Меня всегда очень сильно удивляют люди, которые задают подобные вопросы на форумах и упорно ждут ответа, вместо того чтобы потратить ЦЕЛЫХ ДВЕ МИНУТЫ, чтобы прочитать описание хелпера. P.S. Вопрос: почему ты используешь "f.label", но "select_tag+options_for_select" вместо "f.select"? И контрольный вопрос: а в чём собственно разница между f.label и label_tag, f.select и select_tag и т.д.? -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
RedAlliance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.12.2010 Репутация: нет Всего: нет |
никогда не слышала о label_tag..
до этого момента всегда использовала именно в таком виде:сначала f.label,потом select_tag без f-работало.. попробовала f.select сделать: 50: <p> 51: <%= f.label :faculty %><br /> 52: <%if not @faculty == nil %> 53: <%= f.select ("faculty","faculty",@faculty.map{|p| [p.faculty,p.faculty]})%><span style="color:red">*</span><br /> 54: </p> -говорит,что неопределён метод merge для массива.. если так: <p> <%= f.label :faculty %><br /> <%if not @faculty == nil %> <%= select_tag 'faculty',options_from_collection_for_select(@faculty,:faculty,:faculty) %><span style="color:red">*</span><br /> </p> то получаю: You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.map eсли так: <p> <%= f.label :faculty %><br /> <%if not @faculty == nil %> <%= f.select ('faculty',options_from_collection_for_select(@faculty,:faculty,:faculty))%><span style="color:red">*</span><br /> </p> то не ругается и вносится в таблицу,но зато показывает с тэгами <option value="Faculty of Maths">Faculty of Maths</option> и с ними же вносится в таблицу.. ![]() Это сообщение отредактировал(а) RedAlliance - 12.2.2011, 22:32 |
|||
|
||||
source777 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
Почему? Чтобы что-то использовать надо понимать как это работает и чем отличается от альтернатив. Бездумное использование чего-либо в программировании ни к чему хорошему не приводит, зато конструкций типа "if not @faculty == nil" будет навалом. Я понимаю, что скорее всего ты пока пишешь одна и только для себя. Но подумай каково будет людям, если им придётся читать твой код... Вот несколько вариантов как на порядок улучшить хотя бы эту строчку:
правильно говорит, а ты судя по этой ошибке так и не поняла чем отличается f.label от label_tag Не торопись программировать, прочитай хоть Rails Guides для начала, в частности тебе сейчас очень актуальна статья Rails Form Helpers.
По всей видимости твой вариант:
либо
Понять что-то в обрывках твоего кода просто невозможно... Что хранится в массиве @faculty, с какого перепуга массив называется в единственном числе? Что такое p.faculty объект типа Faculty или его название? Это сообщение отредактировал(а) source777 - 13.2.2011, 00:09 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||||
|
|||||||||
RedAlliance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.12.2010 Репутация: нет Всего: нет |
ошибка оказалась глупой..при создании сделала следующее:
до этого контроллер просто не знал,откуда брать для @user параметры faculty и group.. спасибо source777 за ссылку на документацию) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Ruby on Rails" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby On Rails | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |