| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby: Общие вопросы > Ошибка при обновлении полей в двусвязной таблице |
| Автор: MefIsT0feL 27.2.2007, 17:28 | ||
| Народ !! Подскажите как пофиксить баг. Ситуация такова : Есть двусвязная таблица с полями user_id и role_id. При попытке выполнить update_attributes вываливается "Mysql::Error: #42S22Unknown column 'id' in 'where clause': UPDATE users_roles SET `user_id` = 1, `role_id` = 13 WHERE id = NULL" Я вообще не понимаю откудого Rails трогает этот id ?? Ведь выборку из таблицы я делал по user_id :
Помогите ПЛИИИИЗ !! Потому что у меня уже крыша ехать начинает !!! |
| Автор: skalex 27.2.2007, 17:38 |
| Насколько я понимаю метод find() - должен в результате выполнять SELECT. А у вас ошибка в UPDATE-запросе ... P.S. Утойняйте пож. в теме топика, что вопрос касается ROR. |
| Автор: MefIsT0feL 27.2.2007, 17:43 | ||
Ну да ошибка в UPDATE, я имел в виду, что далее я делаю
|
| Автор: skalex 27.2.2007, 18:09 |
| MefIsT0feL, а какой primary_key у таблицы users? |
| Автор: MefIsT0feL 27.2.2007, 18:23 |
| Никакого |
| Автор: PFOcChKen 27.2.2007, 19:18 |
| 1. А связаны ли у вас таблицы на уровне моделей? has_and_belongs_to_many? 2. В таблице users должен быть ключ с именем id, либо в модели User этот ключ надо переназвать. (Rails по умолчанию работают с id) 3. Напрямую с такой таблицей в рельсах лучше не работать. Лучше создать модельки User и Role с ключами id и законектить их друг на друга... |
| Автор: MefIsT0feL 28.2.2007, 13:30 |
| Есть и модель User и модель Role и связа прописаны тоже. Задача у меня состоит в иом, что у определённого юзера необходимо поменять значение роли. А она не меняется. |
| Автор: MefIsT0feL 28.2.2007, 13:51 |
| Всё. Пофиксил !! Всем СПАСИБО за помощь !!! Я просто сделал не update_attributes, а usr.role << (нуобходимая мне роль) Всем ещё раз СПАСИБО !!! |