首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails - Devise - edit_user_registration_path

Rails - Devise - edit_user_registration_path
EN

Stack Overflow用户
提问于 2010-11-07 08:30:22
回答 4查看 9.9K关注 0票数 6

对于Rails,有一个路径,edit_user_registration_path,允许用户编辑他们的配置文件。

我正在设置我自己的帐户控制,以呈现给用户一个更好的UI来编辑他们的个人资料等。其路由地址为/account/profile、/account/notices等。

问题是这个URL,/ users /edit仍然有效,并将用户带到DEVISE编辑页面。

如何才能使其始终转到新编辑页面/帐户/个人资料

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-07 08:39:39

这可能是devise最糟糕的部分是创建一个自定义的编辑配置文件路径。这样做的原因是,当您尝试更新您的资源时,它会将您返回到编辑用户的默认路径,即如果您收到错误。

我建议您保留默认的users/edit路径,然后编辑关联,而不是实际的资源。否则,您将不得不挖掘gem并重写如何编辑用户的路径。

这就是我所做的。

在您的用户模型user.rb

代码语言:javascript
运行
复制
has_one :profile
has_many :notices

然后你可以有一个noticesprofiles控制器,你可以在其中编辑它们,而不是编辑用户或resource,这是你用devise helper创建的,这将使定制变得更加困难。为这些表单创建一个hidden_field f.hidden_field :user_id, :value => current_user.id,它将在您创建和更新这些表单时保存用户,等等。

票数 5
EN

Stack Overflow用户

发布于 2014-03-04 06:18:43

从最新的Devise发行版(特别是this commit)开始,您现在可以通过path_names为编辑配置文件操作指定自定义路径

代码语言:javascript
运行
复制
devise_for :users, path_names: { edit: 'profile' }
票数 4
EN

Stack Overflow用户

发布于 2012-11-06 06:23:00

更简单的方法是创建一个ProfilesController,并在路由中定义"resource :profile“。然后,您只需定义"edit“和"update”方法,就完成了。

除了基础知识,我没有更深入地讨论它,但我真的看不到缺点,而且与这里提供的任何东西相比,它真的很简单。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4115931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档