Rails / Devise-将用户名传递到Profile Build中

abbott567

我目前正在使用devise从事Rails项目,但遇到了一个问题。

我有默认的devise:install和User模型一起运行,还有另一个模型称为Profile。belongs_to :user和用户has_one :profile

我的问题是,我要求用户具有用户名,因此必须在注册时完成;因此,这是通过devise传递到users表中的。但是我需要使用用户名作为用户个人资料网址,这意味着将用户表中的属性与个人资料视图交叉。

在用户模型中,我正在使用:after_create :build_profile为该用户构建配置文件。这将创建一个配置文件first_namelast_name等成型材表。

因此,使用“ friendly_id” gem,我可以从“个人资料/索引”页面链接到用户个人资料的属性。问题是我只能使用已传递到个人档案表中的内容,例如,first_name或者last_name我无法链接到:username用户表中的内容,而不能链接到个人档案表中。

在profile_model.rb文件中,此刻我正在使用:

extend FriendlyId
friendly_id :first_name

在我使用的profiles / index.html.erb文件中:

<% @profiles.each do |profile| %>
<p><%= link_to profile.user.username, profile %></p>
<% end %>

这适用于制作诸如/ profiles / John之类的URL,但是John不好,因为它不是唯一的。

达卡

您是否考虑过使用嵌套路线?在routes.rb文件中,您可以:

resources :users do
  resources :profiles
end

这样,您就可以使用类似 <%= link_to user_profile_path(@profile.user, @profile), @profile %>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在用户模型中访问“用户名”属性(Rails 4-Devise)

如何从Rails中的Devise用户删除属性?

Devise on Rails 6 中的子用户

使用Ruby on Rails Devise Gem向用户名注册

使用devise在Rails 3中发送密码重置指令后,如何将用户重定向到登录页面

如何将用户名从子布局传递到Sitecore中的当前布局?

Rails 4,Devise-无法从Rails控制台更新用户名

如何在 Ruby on Rails 中将用户名添加到预订中

Rails:是否可以在Devise中自动记住用户?

阻止Devise用户通过Rails中的URL访问/编辑表单

Rails中具有Devise用户的配置文件模型

从令牌传递用户名以将用户名保存在模型中

Devise + Angular + Rails 4:更改已登录用户不验证用户名/密码

Devise for Rails 4:为什么要将用户配置文件数据保留在与Devise用户模型表不同的表中

用户名regex在Rails 4中

Rails中的用户名路由

如何将用户名/密码传递到ambari-server sync-ldap命令中

如何将用户名/密码传递到ambari-server sync-ldap命令中

Ruby on Rails 中的 Devise + Patreon OAuth

直接在devise rails中登录

无法在Rails中覆盖Devise :: RegistrationsController?

在Devise Rails 4中令人难忘

Rails:无法使用Devise登录用户

Rails devise为用户模块生成视图

使用Devise / Rails获取当前用户的UserID

Rails&Devise:用户帐户未删除

Rails,Devise:用户的未知属性“密码”

Rails Devise在登录时添加用户

Devise :: RegistrationsController#create中的ArgumentError请求了SMTP-AUTH,但缺少用户名