Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/Программирование на ROR/Обновление записи если в таблице нет поля id

2008-06-09 15:58:09 Ответить  
Alexey
Alexey Alexey
Адрес:
Сообщений: 14
Регистр: 2007-11-12
его блог 0 сообщ.
Обновление записи если в таблице нет поля id
  •  
Подскажите плиз, если в таблице нет поля id, как проапдейтить запись в этой таблице. При попытке это сделать - след ошибка

ActiveRecord::StatementInvalid in ItemsController#update
Mysql::Error: #42S22Unknown column 'id' in 'where clause': UPDATE `items` SET `title` = '2qwqwqw', `price` = 22332323.0, `user_id` = 2, `description` = '2qwww' WHERE `id` = NULL

Я видел плагин, с помощью которого можно изменить дефолтное значение первичного поля. Можно ли как-то проще решить эту проблему?
,
2008-06-05 19:02:41 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 97
Регистр: 2007-07-25
его блог 0 сообщ.
RE: Обновление записи если в таблице нет поля id
  •  
Насколько я понял твой вопрос тебе поможет:



А вообще просмотри статью http://wiki.rubyonrails.org/rails/pages/HowToUseLegacySchemas
2008-06-09 19:29:17 Ответить  
Alexey
Alexey Alexey
Адрес:
Сообщений: 14
Регистр: 2007-11-12
его блог 0 сообщ.
RE: Обновление записи если в таблице нет поля id
  •  
Спасибо. Это помогло. У меня еще один вопрос:

Есть след. модель user(id,login,...), item(user_id,title,....), comment(user_id,body,....),
user - item (1 to 1)
item - comment (1 to many)

В моделях прописал след:

class User < ActiveRecord::Base
has_one :item
.....
class Item < ActiveRecord::Base
belongs_to :user
set_primary_key :user_id
has_many :comments
end

class Comment < ActiveRecord::Base
belongs_to :item,:foreign_key=>:user_id
end
При попытке сделать след:
@item.comments.count
внешнем полем для comments все равно считается item_id
Mysql::Error: #42S22Unknown column 'comments.item_id' in 'where clause': SELECT count(*) AS count_all FROM `comments` WHERE (comments.item_id = 1)

Что неправильно сделано в моделях??

2008-06-10 03:14:47 Ответить  
bartanxas
bartanxas
Адрес:
Сообщений: 2
Регистр: 2008-01-25
его блог 0 сообщ.
RE: Обновление записи если в таблице нет поля id
  •  
Попробуй изменить класс Item следующим образомм:
Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 181 Онлайн: Іван Будзуляк,
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008