Tho*_*mas 3 performance ruby-on-rails code-organization user-profile devise
我有一个rails 3 devise app,用户有个人资料和隐私设置.我目前有这个工作,但我担心效率,并会喜欢经验丰富的rails dev的建议.
我使用设计生成了用户模型,并将配置文件和隐私模型搭建成了包含被认为不需要注册的项目.我希望用户有不同的设置链接.
帐户设置=>设计 - 只需要登录类型的东西,用户名,密码配置文件设置=>配置文件模型 - 描述,头像,生日等.隐私设置=>隐私模型 - 控制用户配置文件字段的基本隐藏/显示的复选框.
我建立了自己的人际关系:
user.rb
has_one :profile
has_one :privacy
Run Code Online (Sandbox Code Playgroud)
profile.rb
belongs_to :user
Run Code Online (Sandbox Code Playgroud)
privacy.rb
belongs_to :user
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎非常低效.要显示配置文件,我依赖于加载三个表:用户,配置文件和隐私.
我认为Profile和Privacy中的所有表列都应该包含在users表中,这会更有意义吗?我如何分开不同的形式?
我的想法只是向用户控制器添加配置文件方法和隐私方法,而不是在我的用户视图中创建配置文件和隐私模板.用不同的形式控制每个人编辑的用户记录的不同部分.
这有意义吗?这比我现在拥有的独立脚手架更有意义吗?
我认为你是在以一种非常困难的方式做到这一点.仅添加用户个人资料页面
$ rails generate controller Users show
Run Code Online (Sandbox Code Playgroud)
在你的app/controllers/users_controller.rb中
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
end
Run Code Online (Sandbox Code Playgroud)
在您的app/views/users/show.html.erb中
<h1><%= @user.name %></h1>
Run Code Online (Sandbox Code Playgroud)
然后只需添加w/e你想要的个人资料页面.
在你的config/routes.rb中
devise_for :users
get 'users/:id' => 'users#show', as: :user
Run Code Online (Sandbox Code Playgroud)
希望这有助于用户配置文件
| 归档时间: |
|
| 查看次数: |
1471 次 |
| 最近记录: |