【问题标题】:Create default Rails model associations创建默认 Rails 模型关联
【发布时间】:2011-08-19 11:01:25
【问题描述】:

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

【问题讨论】:

  • 您是否总是希望默认关联指向 id 为 10 的用户?
  • 可能,请告诉我您的建议

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


【解决方案1】:

您可以在您的 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

【讨论】:

  • 我将如何更改它以便分配每个标签 (HABTM)?另外,我将如何使其在“新”操作中生效?
  • 你知道我怎样才能完成这项工作,以便在第一次呈现新表单时,关联已经就位吗? (用于嵌套形式)
【解决方案2】:

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

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

【讨论】:

  • 我希望将其链接到现有资源,例如新博文会自动与所有标签关联
猜你喜欢
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多