创建默认的Rails模型关联

时间:2011-08-19 11:01:26

标签: ruby-on-rails model associations new-operator

有没有办法设置Rails模型以与现有资源建立默认关联,即我创建一个新的博客文章,它会自动获得id为10的作者。

2 个答案:

答案 0 :(得分:4)

您可以在BlogPost模型中执行类似的操作,这会为用户10分配每个创建的博客帖子。

after_create do |blog_post|
  blog_post.user = User.find(10)
  blog_post.tags = Tag.all  # Or whatever
end

编辑:

要在调用new时使用after_initialize回调代替:

after_initialize do |blog_post|
  blog_post.user = User.find(10)
  blog_post.tags = Tag.all  # Or whatever
end

答案 1 :(得分:0)

我不确定这是否是您所获得的,但您可以通过使用活动记录附带的关联扩展来实现您想要做的事情,即

u = User.first
u.blog_posts.create(:title => 'great post', :content => 'better content')

这将创建博客帖子并自动将user_id分配给用户u

有关详细信息,请参阅此页面:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html