0

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

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

 class User < ActiveRecord::Base
  has_one :biography
 end

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

4

1 回答 1

1

您已经查看了此链接。(资源)

belongs_to 关联建立了与另一个模型的一对一连接,这样声明模型的每个实例“属于”另一个模型的一个实例。

has_one 关联还建立了与另一个模型的一对一连接,但语义(和结果)有所不同。这种关联表明模型的每个实例都包含或拥有另一个模型的一个实例。

但是如果你愿意,你可以添加一个 :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

希望能帮助到你。

于 2012-08-27T10:44:19.567 回答