根据用户ID在配置文件中创建默认值

时间:2014-12-08 23:11:43

标签: ruby-on-rails devise

我创建了一个配置文件模型,用于存储客户用户属性。

我已在我的用户模型中包含以下内容,该模型会在创建新用户时创建配置文件记录。

before_create :build_profile

是否可以根据用户模型在配置文件模型中设置默认值?

例如,我想要默认的个人资料'别名'设置为' User' + user_id

1 个答案:

答案 0 :(得分:1)

也许您应该考虑在使用回调创建新用户时创建新的配置文件。

回调是您可以锁定的触发器,以便完成特定任务。一般的想法是,您可以在User模型中编写一个私有方法来创建关联的配置文件,然后在User模型完成创建新用户之后立即触发它。你可以这样做:

# app/models/user.rb
after_create :create_a_profile

然后在您的私有方法中(进一步在user.rb文件中):

# app/models/user.rb    

private

def create_a_profile
  Profile.create(user_id: self.id, etc...)
end

这会使你的profile_controller变得更简单 - 你需要做的就是加载current_user的配置文件,然后允许用户更新普通CRUD中的额外细节吗?