J'ai essayé d'installer un modèle d'héritage de table unique dans Rails 3 dans lequel la classe parent contient également une relation has_many. Malheureusement, je ne peux pas le faire fonctionner. Voici trois classes à titre d'exemple:Rails 3 héritage de table unique w/has_many question
class Article < ActiveRecord::Base
has_many :paragraphs, :dependent => :destroy, :autosave => true
end
class Paragraph < ActiveRecord::Base
belongs_to :article
end
class SportsArticle < Article
end
Et voici la migration qui serait utilisé pour établir ceci:
class AddTables < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.string :type, :null => false # for STI
t.string :title, :null => false
t.timestamps
end
create_table :paragraphs do |t|
t.references :article, :null => false
t.timestamps
end
end
def self.down
drop_table :articles
drop_table :paragraphs
end
end
Lorsque je l'ai mis de cette façon et je tente de créer une nouvelle SportsArticle , par exemple en procédant comme suit:
SportsArticle.create(:title => "Go Giants")
Je reçois toujours l'erreur suivante:
"TypeError: impossible de convertir la chaîne en entier"
Je n'ai aucune idée de comment résoudre ce problème et j'ai essayé de trouver une solution en ligne en vain. Est-ce que quelqu'un qui a de l'expérience avec les modèles d'ITS voit quelque chose de mal? Voici le lien vers la documentation sur la méthode de création si elle aidera à diagnostiquer le problème: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-create
Cela n'a pas fonctionné. Dans la documentation sur les rails, il est dit que vous êtes censé nommer la colonne "type" pour implémenter la STI http://api.rubyonrails.org/classes/ActiveRecord/Base.html – Abe
Merci pour le porkeypop de réponse, il a finalement fini par être une collision de nommage d'un genre différent. – Abe