Как создать модель без первичного ключа в направляющих

Я хочу создать модель 'Relation', которая расширяет ActiveRecord:: Основа, набор это - имя таблицы как 'questions_tags', и без первичного ключа. What should I do?

class Relation < ActiveRecord::Base
  set_table_name 'questions_tags' # set table name, right?

  # how to define 'no-pk'?

end

ОБНОВЛЕНИЕ


Привет, парни. Я знаю, что использование 'create_table' может решить эту проблему, но это, что я хочу знать: Каково волшебство позади create_table(:id=>false)? Как я могу получить тот же эффект без использования create_table(:id=>false)?

8
задан Freewind 21 June 2010 в 12:24
поделиться

3 ответа

Создайте миграцию, которая выглядит следующим образом:

class CreateQuestionsTags < ActiveRecord::Migration

  def self.up
   create_table :questions_tags, {:id => false, :force => true} do |t|
     ...
     t.timestamps
   end
  end

  def self.down
   drop_table :questions_tags
  end

end
11
ответ дан 5 December 2019 в 22:16
поделиться

Если вы хотите создать сводную таблицу, как это выглядит из имени таблицы, AR обработает это в фоновом режиме.

Однако, если вы хотите создать таблицу с большим количеством фейдов, тогда: 1) переименуйте вашу таблицу в "realtions" пожалуйста 2) используйте первичный ключ «id»

. Нет веской причины не использовать первичный ключ в таблице, и очень вероятно, что вы можете позже пожалеть об этом.

2
ответ дан 5 December 2019 в 22:16
поделиться

Почему вам не нужен ПК?

Active Record ожидает ПК, и я не вижу, какой вред он может нанести.

-7
ответ дан 5 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: