2010-05-27 4 views
0

Возможно ли это в поле имеет и принадлежит многим таблице?Rails Habtm с полем

Как любимца:

create_table :messages_users, :id => false, :force => true do |t| 
    t.integer :message_id, :null => false 
    t.integer :user_id, :null => false 

    t.boolean :favorite, :null => false 

    t.timestamps 
end 

Я видел временные метки работает хорошо, благодаря ActiveRecord. Но когда я пытаюсь добавить фаворита в таблицу, а затем я пытаюсь:

Message.first.users << User.first 

Тогда я получаю сообщение об ошибке:

ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: messages_users.favorite не может быть NULL, : INSERT INTO "messages_users" ("created_at", "message_id", "updated_at", "user_id") Значения ('' '2010-05-27 6:07 : 50,721512' '' , 1, '' '2010-05-27 06: 07: 50.721512' '', 1)

Я хотел бы использовать HABTM, мне не нравится has_many Foo хотя ассоциация адвокатов :)

Возможно ли это?

Большое спасибо.

ответ

1

Нет, это невозможно.
Использовать has_many foo хотя bar.

+0

Если вы хотите сравнить между habtm и has_many: через это [подходящее место для начала] [1]. В блоге есть много других статей о has_many: через которые я призываю вас вникать. В принципе, клиф прав, и я не понимаю, почему вы предпочитаете habtm, если он не создан с той областью, которую вы пытаетесь достичь. Переключитесь на has_many: через и вы будете поражены тем, насколько гибко это происходит, когда вы узнаете, как это работает. [1]: http://blog.hasmanythrough.com/2006/2/28/association-goodness – tommasop

+0

Благодарим вас за этот ответ. Я думаю, что буду использовать has_many: через :( – moshimoshi

Смежные вопросы