独立Ruby中的活动记录
我有独立的Ruby应用程序,并希望将它与活动记录gem一起使用。 我做了3个型号: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
comment.rb
require 'active_record' class Comment true attr_accessible :content, :user_id end
现在我想通过发出以下代码,用一个用户,一个post和一个评论为这篇post和用户填充数据库:
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!"
但现在它填充数据库但user_id为null。 我在这里想念的是什么?
我认为您的评论与post相关联,而不是用户…
只要说comment1.user = user1
然后是comment1.save!
我认为这里的关键问题是发表评论的用户不一定是制作原始post的用户。 如果是这种情况,您可以通过through选项强制执行。 但是,由于任何用户都可以评论post,然后说post1.comments.create等不应该自动拉入创建post的用户吗? 因为它可能是另一个用户……
我不确定,但我认为你不想在活动记录类中使用那些attr_accessible规范 – 我认为它们会干扰活动记录自动提供的字段 – 尝试删除所有这些字段
- 对于#<ActiveRecord :: ConnectionAdapters :: MysqlAdapter,未定义的方法`explain'
- Rails 3忽略Postgres唯一约束exception
- 如何从Rails模型中获取属性的数据类型?
- 有和属于许多错误 – * _development.hunts_tasks’不存在:
- Rails用于可以映射到不同模型类型的模型的活动记录关联
- 为什么Rails中的ActiveRecord不支持多表inheritance?
- Rails :: ActiveRecord在深拷贝副本中保留auto_increment id
- rails try方法抛出NoMethodError?
- Rails:模型实例方法还是辅助方法?