2011-04-09 60 views
0

我们正在开发一种以这种方式工作的公告机制: - 用户在公告下嵌套属性。用户的电子邮件作为嵌套属性输入到新的公告表单中。 - 希望以这种方式工作 - 保存通告时,需要搜索用户的电子邮件(当前用户的电子邮件)(如果找到),然后将该通知存入该用户的个人资料中,并通过电子邮件通知用户。如果不是,则会创建一个新的用户帐户,并发送一封电子邮件给用户索要他的帐户。 创建新通知时,导轨会保存所有与w/nested属性相关的属性(除非用户的电子邮件已存在,否则这很棒)。 由于只有用户的电子邮件用于创建用户的帐户,我们以后如何实现密码(或自动创建密码以允许用户稍后更改)?我们正在使用设计进行身份验证。有没有办法使用设计来执行此功能? 这个问题如何解决?非常感谢您的帮助。Rails 3 - 虚拟用户创建和验证

class Announcement < ActiveRecord::Base 

    attr_accessible :content, :users_attributes 

    has_many :users, :through => :awards 
    has_many :awards, :dependent => :destroy 

    accepts_nested_attributes_for :users, :reject_if => lambda { |a| a[:email].blank? }, :allow_destroy => true 

end 
class User < ActiveRecord::Base 
    attr_accessible :email, :first_name, :last_name, :middle_name 

    has_many :awards, :dependent => :destroy 
    has_many :announcements, :through => :awards, :dependent => :destroy 

    email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 

    validates :email, :presence => true, :format => { :with => email_regex }, :uniqueness => { :case_sensitive => false } 

end 

电子邮件

回答

0

您可以实现您的用户模型的附加布尔属性,表明该帐户一直声称,再不行用色器件的确认的模块(因为用户已经有效确认他们的电子邮件通过追踪链接)。当用户到达谁的账户没有被要求时,请填写当时的认证细节。假设你在电子邮件链接中有一个属性,可以让你检索合适的记录来填充。

+0

Marc,谢谢你的帮助。在默认情况下设计需要:密码 - 即使我尝试了他们的W/O密码维基 - 不能使其工作。我是一个nuby,你能详细解释一下吗?谢谢! – coder 2011-04-09 23:41:08