我已经建立了一个博客,使用 Devise 插件安全登录,并且运行良好。我将在注册时添加一个额外的"用户名"字段,然后文章帖子将显示此信息。我如何实现这一点,以便用户名进入数据库 - 任何代码帮助将不胜感激?
用户名必须是唯一的,但我稍后会研究这一点。
正如 Devise wiki sez:
创建迁移
rails generate migration add_username_to_users username:string
运行迁移
rake db:migrate
修改用户模型并将用户名添加到attr_accessible
attr_accessible :username
更多信息在这里
对于唯一性,您可以对用户模型进行验证
希望这有帮助!
所以你在同一主题中有 2 个问题。
第一个问题已得到解答,您按照以下步骤操作: 添加自定义字段进行设计
然后对于您的下一个问题:问题不在于用户,而在于@article
,因为此变量nil
。所以 Rails 找不到与nil
的东西相关的User
。
您应该发布您的控制器和您的_article
视图,以便我可以进一步提供帮助。
我也不明白你的意思:
我将对象从"电子邮件"更改为"用户名",以阻止它在文章中显示提交者的电子邮件地址
..您可以选择要显示的任何内容,而无需替换任何内容。如果要显示用户的用户名,只需执行user.username
- 在 article.rb 中添加
belongs_to :user
,并将has_many :articles
添加到您的 user.rb - 更新项目迁移以包含 user_id:整数字段(或使用
t.references :user
) - 更新文章控制器#创建操作以使用
current_user.create_article
或build_article
- 请务必调用 authenticate_user! before_filter 的 :create 操作before_filter :authenticate_user!, only => :only => [:new, :create, :edit, :update, :d estroy]
裁判:http://guides.rubyonrails.org/association_basics.html