验证只为单个人添加一个传记

时间:2012-08-27 10:36:53

标签: ruby-on-rails

我有两个模型用户和传记,两者都有一对一的关联,我想用户只添加一个传记。这是模型: -

 class Biography < ActiveRecord::Base
  attr_accessible :biography, :date, :title, :individual_id  
  belongs_to :user
 end

 class User < ActiveRecord::Base
  has_one :biography
 end

如何验证用户,以便他只能添加一个传记。 请帮忙!

1 个答案:

答案 0 :(得分:1)

您已查看此link. (source)

  

belongs_to关联设置与另一个的一对一连接   模型,使得声明模型的每个实例“属于”一个   另一个模型的实例。

     

has_one关联还会与之建立一对一的关联   另一个模型,但有一些不同的语义(和   后果)。此关联表示每个实例   model包含或拥有另一个模型的一个实例。

但是如果你想要你可以添加一个:before_save方法来检查user.biography不会返回意外的东西,但我不认为这是必要的。

评论后编辑:

尝试像before_filter ......

before_filter :check_user, :only => [:new]

这将在调用控制器操作之前调用该方法。然后你可以创建一个方法来检查current_user是否有一个传记并将它们指向它。这是一个起点..

def check_user
 current_user.nil? ? redirect_to(new_biography_path) : redirect_to(edit_biography_path) 
end

希望它有所帮助。