我有一个User
模型,其中包含Profile
(belongs_to用户)。为简单起见,我只是说该个人资料有location
字段和occupation
字段。
我使用Omniauth
创建用户,但我还希望同时创建附加的Profile
。目前,来自omniauth方法的create
如下:
def self.create_from_omniauth(omniauth_data)
full_name = omniauth_data["info"]["name"].split(" ")
User.create(
provider: omniauth_data["provider"],
uid: omniauth_data["uid"],
first_name: full_name[0],
last_name: full_name[1],
email: omniauth_data["info"]["email"],
password: SecureRandom.hex(16)
)
end
我想知道如何在其中包含配置文件的构建。我知道使用has_one我可以访问build_profile
方法,但我也想确保它已正确连接到我的User对象。如何深入了解我应该如何重新格式化create_from_omniauth
操作以在Profile
对象旁边正确构建关联的User
将非常有帮助。
答案 0 :(得分:1)
执行所需操作的更简单方法是使用配置文件的用户#show action。而不是在数据库中创建具有配置文件表的配置文件模型(浪费内存),为什么不将这个显示作为配置文件用于您的用户。在这种情况下,您可以将show动作的路线重命名为个人资料。