gpt4 book ai didi

ruby-on-rails - 使用 devise 在 Ruby on Rails 中创建用户帐户设置页面

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:41 26 4
gpt4 key购买 nike

我是 Ruby on Rails 的新手,我创建了一个项目,其中包含一个用户表(由设计生成)和一个包含用户特定帐户设置的 AccountSetting 表(该表具有与用户表因此每个用户都有零个或一个 AccountSettings)。我的种子数据工作正常,我可以使用具有用户特定帐户设置的用户来为数据库播种。 User 表通过“has_one :accountsetting”和 AccountSettings 表“belongs_to :user”与 AccountSetting 表相关。这一切都有效且有意义。但是,我的 UserSettings Controller 中有一个名为“show_user_setting”的方法,我不知道如何只显示该特定经过身份验证的用户的帐户设置。

那么,如何才能只显示当前登录用户的用户设置呢?同样,我正在使用设计。我对如何做到这一点的一般想法是这样的。但是我知道这是不正确的,但为了解释的目的,在这里。

def show_user_setting
@setting = AccountSetting.find(current_user)
end

我的想法是@setting 将包含当前登录用户的设置。提前致谢!

最佳答案

你应该这样做:

#app/models/account_setting.rb
class AccountSetting < ActiveRecord::Base
belongs_to :user
end

#app/models/user.rb
class User < ActiveRecord::Base
has_one :account_setting
end

这将允许您调用以下内容:

@setting = current_user.account_setting

我们的设置

为了它的值(value),我们做了类似的事情:

#app/models/user.rb
class User < ActiveRecord::Base
before_create :build_profile #-> builds a blank profile on user create
has_one :profile
end

#app/models/profile.rb
class Profile < ActiveRecord::Base
belongs_to :user
end

这允许我们将各种不同的选项放入 profile 模型(我们有 homepage 等):

enter image description here

这里要注意的重要一点是上面允许你delegate profile 模型的各种方法,允许您调用以下内容:

current_user.profile_name
current_user.profile_signin_redirect?
current_user.profile_avatar

等等

关于ruby-on-rails - 使用 devise 在 Ruby on Rails 中创建用户帐户设置页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com