tengo una migración DB así:campo id y sin opción de incremento automático en la migración
class CreateParticipations < ActiveRecord::Migration
def self.up
create_table(:participations, :primary_key => 'Seat') do |t|
t.integer :Seat
t.string :Nickname
t.string :Clan
t.string :FirstName
t.string :LastName
t.string :Email
t.boolean :Payed
t.timestamps
end
end
def self.down
drop_table :participations
end
end
Ahora, el asiento se crea con un incremento automático. Sin embargo, no quiero eso. Lo quiero sin un incremento automático. Definiré a Seat en mi Lógica.
He estado buscando pero no puedo encontrar la manera de deshabilitar el auto_increment.
¿Cómo puedo hacer esto? Excepto por hacerlo manualmente en MySQL.
¿Estás realmente seguro de que quieres hacer esto? Va en contra de la convención que funciona muy bien en todos los rieles y le causará mucho trabajo extra en el resto de su aplicación haciendo que esta excepción a la regla funcione en todas partes. Tal vez "asiento" en un campo en esta tabla con un índice único en su lugar. A menos que necesite esto para adaptarse a un esquema heredado de algún tipo, esta suele ser una mala idea. Lamentablemente, no sé la respuesta real a su pregunta. –
Sé que aquí está animando a los muertos, pero un ejemplo relativamente trivial podría ser un modelo vinculado a un servicio que no sea de Rails y que gestione los identificadores dentro de ese servicio. No habría necesidad de un autoincremento dentro de Rails, porque tendría más sentido vincular la representación de Rails a la id de representación de servicios que no son Rails, en lugar de generar OTRA ID y gestionar OTRO conjunto de restricciones. Sin embargo, sin más detalles sobre la necesidad en la circunstancia original del solicitante, generalmente estoy de acuerdo con usted. –