我有一个 Rails 3 devise 应用程序,其用户具有配置文件和隐私设置。我目前有这个工作,但担心效率,并且会喜欢有经验的 Rails 开发人员的建议。
我通过设计生成了用户模型,并构建了个人资料和隐私模型,以包含被认为不需要注册的项目。我希望用户有不同的设置链接。
帐户设置 => 设计 - 只需要登录类型、用户名、密码 个人资料设置 => 个人资料模型 - 描述、头像、生日等。 隐私设置 => 隐私模型 - 控制基本隐藏/显示用户个人资料字段的复选框。
我已经建立了我的关系:
用户.rb
has_one :profile
has_one :privacy
个人资料.rb
belongs_to :user
隐私.rb
belongs_to :user
这对我来说似乎非常低效。要显示个人资料,我依赖于加载三个表:用户、个人资料和隐私。
我认为 Profile 和 Privacy 中的所有表列都应该包含在 users 表中,这样会更有意义吗?我如何区分不同的表单?
我的一个想法是向用户 Controller 添加一个profile 方法和一个privacy 方法,这样我就可以在我的用户 View 中制作个人资料和隐私模板。用不同的形式控制每个人将编辑的用户记录的不同部分。
这有意义吗?这会比我目前拥有的单独脚手架更有意义吗?
最佳答案
我认为您的做法非常困难。只需添加用户个人资料页面
$ rails generate controller Users show
在你的 app/controllers/users_controller.rb 中
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
end
在你的 app/views/users/show.html.erb
<h1><%= @user.name %></h1>
然后只需将您想要的内容添加到个人资料页面即可。
在你的 config/routes.rb 中
devise_for :users
get 'users/:id' => 'users#show', as: :user
希望这对用户配置文件有帮助
关于ruby-on-rails - 我应该如何添加用户配置文件和隐私来设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767435/