我有两个模型用户和传记,两者都有一对一的关联,我想用户只添加一个传记。这是模型: -
class Biography < ActiveRecord::Base
attr_accessible :biography, :date, :title, :individual_id
belongs_to :user
end
class User < ActiveRecord::Base
has_one :biography
end
如何验证用户,以便他只能添加一个传记。 请帮忙!
答案 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
希望它有所帮助。