代码之家  ›  专栏  ›  技术社区  ›  Mark Fraser

ActiveRecord有很多关系防止孤立的新创建对象

  •  0
  • Mark Fraser  · 技术社区  · 15 年前

    假设我有一个属于Post模型的Comment模型。

    我想这样做是因为我想在comment对象中设置一些基于post的默认值…所以post引用需要立即有效。

    实现这一目标的最佳方法是什么?谢谢。

    2 回复  |  直到 15 年前
        1
  •  0
  •   zetetic    15 年前

    我想这样做是为了配合 new after_initialize :

    def after_initialize
      raise "no Post" unless post
    end
    

    不过,这似乎有点过头了,因为每次实例化一个注释时都必须运行它。我要说的是编写测试,以确保正确设置默认值。

        2
  •  0
  •   Peter Brown    15 年前

    class Comment < ActiveRecord::Base
      validates_presence_of :post_id
    end
    

    然后使用以下命令创建新注释:

    @post = Post.find(params[:post_id])
    
    @post.comments.create(params[:comment])