RoR:设计和配置文件

发布于 2024-11-15 08:47:49 字数 226 浏览 2 评论 0原文

我是一个彻头彻尾的 Rails 菜鸟,我正在开发我的第一个 Rails 应用程序。

我希望每个用户都有一个个人资料,与 users 表分开,但通过 id 链接。我之前在 PHP 中做得很好,但 Rails 语法是新的。 :/

当每个用户通过 devise 注册时,如何为他们创建个人资料?我如何链接他们的 users/edit 页面来编辑他们的个人资料?

I'm a complete Rails noob and I'm working on my first rails app.

I'd like each user to have a profile, separate from the users table, but linked by id. I did this alright in PHP before, but rails syntax is new. :/

How do I create a profile for each user when they register via devise? And how do I link their users/edit page to edit their profile instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

注定孤独终老 2024-11-22 08:47:49

您应该阅读有关 关系 的教程

在 Rails 中声明关联非常容易。
在您的 app/models/user.rb 中,您可以执行类似的操作:

has_one :user_profile

您的用户个人资料是一个具有自己的表的不同对象。只需确保其中包含外键 user_id 即可(此外,您应该在用户的配置文件模型中指定 belongs_to :user)。

现在,使用 Devise,如果您想确保在用户注册后创建配置文件,您可以执行类似的操作(仍在用户的模型中):

after_create :create_child
# Creating child Elements
def create_child
  UserProfile.create("user_id" => id)
end

然后,如果您想将特定 URL“链接”到控制器,请参阅路由教程

希望它有所帮助。

You should read this tutorial about Relationship

It's really easy to declare associations in Rails.
In your app/models/user.rb, you could do something like that:

has_one :user_profile

Your user's profile is a different object with its own table. Just make sure that you had the foreign key user_id in it, and you're good to go (also, you should specify belongs_to :user in your user's profile model).

Now, using Devise, if you want to make sure that a profile is being created after a user registers, you could do something like that (still in your user's model):

after_create :create_child
# Creating child Elements
def create_child
  UserProfile.create("user_id" => id)
end

And then, if you want to 'link' a specific URL to a controller, see the routing tutorial

Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文