对于Rails,有一个路径,edit_user_registration_path,允许用户编辑他们的配置文件。
我正在设置我自己的帐户控制,以呈现给用户一个更好的UI来编辑他们的个人资料等。其路由地址为/account/profile、/account/notices等。
问题是这个URL,/ users /edit仍然有效,并将用户带到DEVISE编辑页面。
如何才能使其始终转到新编辑页面/帐户/个人资料
谢谢
发布于 2010-11-07 08:39:39
这可能是devise最糟糕的部分是创建一个自定义的编辑配置文件路径。这样做的原因是,当您尝试更新您的资源时,它会将您返回到编辑用户的默认路径,即如果您收到错误。
我建议您保留默认的users/edit路径,然后编辑关联,而不是实际的资源。否则,您将不得不挖掘gem并重写如何编辑用户的路径。
这就是我所做的。
在您的用户模型user.rb
中
has_one :profile
has_many :notices
然后你可以有一个notices
和profiles
控制器,你可以在其中编辑它们,而不是编辑用户或resource
,这是你用devise helper创建的,这将使定制变得更加困难。为这些表单创建一个hidden_field f.hidden_field :user_id, :value => current_user.id
,它将在您创建和更新这些表单时保存用户,等等。
发布于 2014-03-04 06:18:43
从最新的Devise发行版(特别是this commit)开始,您现在可以通过path_names
为编辑配置文件操作指定自定义路径
devise_for :users, path_names: { edit: 'profile' }
发布于 2012-11-06 06:23:00
更简单的方法是创建一个ProfilesController,并在路由中定义"resource :profile“。然后,您只需定义"edit“和"update”方法,就完成了。
除了基础知识,我没有更深入地讨论它,但我真的看不到缺点,而且与这里提供的任何东西相比,它真的很简单。
https://stackoverflow.com/questions/4115931
复制相似问题