Expediente activo en Ruby independiente.

Tengo una aplicación independiente de Ruby y quiero usarla con la gem de grabación activa. He hecho 3 modelos: user.rb

require 'active_record' class User  :destroy has_many :comments validates :name, :presence => true attr_accessible :name, :state end 

post.rb

 require 'active_record' class Post  { :in => 6..40 } attr_accessible :title, :content end 

comentario.rb

 require 'active_record' class Comment  true attr_accessible :content, :user_id end 

Ahora quiero rellenar la base de datos con un usuario, una publicación y un comentario para esta publicación y usuario al emitir este código:

 require 'active_record' require 'sqlite3' require './models/user' require './models/post' require './models/comment' ActiveRecord::Base.configurations = YAML::load(IO.read('config/database.yml')) ActiveRecord::Base.establish_connection("development") user1 = User.create name: "Joe", state: "England" post1 = user1.posts.create title: "RoR introduction", content: "RoR intro." comment1 = post1.comments.create content: "This is great article!" 

Pero ahora llena la base de datos pero user_id es nulo. ¿Que me estoy perdiendo aqui?

Creo que tu comentario se asocia con una publicación, y no con un usuario …

solo di do comment1.user = user1 y luego comment1.save!

Creo que el problema clave aquí es que el usuario que realiza el comentario no es necesariamente el usuario que realizó la publicación original. Si ese fuera el caso, podría hacerlo cumplir a través de la opción a través de. Sin embargo, dado que cualquier usuario puede comentar una publicación, dicho post1.comments.create, etc. no debería incluir automáticamente al usuario que creó la publicación, ¿no? Ya que podría ser otro usuario …

No estoy seguro, pero no creo que desee esas especificaciones attr_accesibles en una clase de registro activa. Creo que están interfiriendo con los campos que el registro activo proporciona automáticamente. Intente eliminarlos todos.