新建一个 rails 项目,添加 Users 模型,然后添加 Settings 控制器,Settings 控制器里面有 basic_profile,account_setting 等动作来修改用户的各种信息。 现在的问题是 Settings 控制器如何获取 Users 模型中当前登陆用户的数据资料? 下图是 github 修改用户资料的页面: 但是像下图 segmentfault 的修改资料的页面就简单多了,所有资料在 segmentfault.com/user/settings 页面里面修改,不知道他这个又是怎么做的: 我在我的 rails 程序里面只会在 users/[id]/edit 下面修改当前用户的资料,但是我想要实现像 github 那样的,但是对 MVC 不是很理解,不知道该怎么办。
一般来说,User 模型对应着 UsersController 控制器,最好不要自己改太多,因为 Rails 是一个强约定框架,不按约定来会很麻烦(信 DHH,得永生哈)。
如果你用Devise做验证的话,直接就有current_user
这个 helper 访问当前登录的用户。
#1 楼 @dongli1985 谢谢你回答,可是我要像 github 那样在 github.com/settings/下面的不同网页里修改不同类别的用户信息怎么办?而且 github 也是 rails 写的。
more_info GET /more_info(.:format) user#edit
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
more_info 是我自己定义的 route,想在此页面修改用户资料,但是无法用 link_to 链接过去,不知道哪里有问题?