3

我有一个 rails 3 devise 应用程序的用户具有个人资料和隐私设置。我目前有这个工作,但我担心效率,并且会喜欢有经验的 Rails 开发人员的建议。

我使用设计生成了用户模型,并搭建了个人资料和隐私模型以包含被认为不需要注册的项目。我希望用户有不同的设置链接。

帐户设置 => 设计 - 只需要登录类型、用户名、密码 个人资料设置 => 个人资料模型 - 描述、头像、生日等。隐私设置 => 隐私模型 - 控制用户个人资料字段的基本隐藏/显示的复选框。

我已经建立了我的关系:

用户.rb

has_one :profile
has_one :privacy

配置文件.rb

belongs_to :user

隐私.rb

belongs_to :user

这对我来说似乎非常低效。为了显示配置文件,我依赖加载三个表:用户、配置文件和隐私。

我认为 Profile 和 Privacy 中的所有表列都应该包含在 users 表中,这更有意义吗?我将如何区分不同的表格?

我的一个想法是向用户控制器添加一个配置文件方法和一个隐私方法,而不是我可以在我的用户视图中创建配置文件和隐私模板。使用不同的表单来控制每个人将要编辑的用户记录的不同部分。

这有意义吗?这会比我目前拥有的单独的脚手架更有意义吗?

4

1 回答 1

5

我认为你正在以一种非常困难的方式做到这一点。只需添加用户配置文件页面

$ 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>

然后只需将您想要的 w/e 添加到个人资料页面。

在你的 config/routes.rb

devise_for :users
get 'users/:id' => 'users#show', as: :user

希望这有助于用户配置文件

于 2013-07-21T04:15:04.827 回答