ruby-on-rails - 如何为 Devise 的用户模型创建关系和关联

标签 ruby-on-rails devise relational-database

我正在为我的用户模型使用 devise,并且在 paths.rb 中我有 devise_for :users 我将如何向用户提供帖子?

是否只是在 route :

resources :users do
    resources :posts
end

或者你是否因为设计而必须做一些特别的事情

最佳答案

这些路由将起作用,此外,您需要在模型中设置关系,假设您的 posts 表包含 user_id 作为外键:

class User < ActiveRecord::Base
  has_many :posts
  has_many :comments
end

class Post < ActiveRecord::Base
  belongs_to :user
  has_many :comments
end

class Comments < ActiveRecord::Base
  belongs_to :user
  belongs_to :post
end

编辑

要将外键添加到您的 Post 模型中:

rails g migration add_user_id_to_posts user_id:integer

这将在 db/migrate 文件夹中创建一个迁移文件,如下所示:

class AddUserIdToPosts < ActiveRecord::Migration
  def self.up
    add_column :posts, :user_id, :integer
  end

  def self.down
    remove_column :posts, :user_id
  end
end

然后,您可以使用以下方法将这些更改迁移到数据库: rake 数据库:迁移

关于ruby-on-rails - 如何为 Devise 的用户模型创建关系和关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686093/

相关文章:

css - 局部 View 中的实例变量

ruby-on-rails - 用Devise添加额外的注册字段

python - "NameError: name ' <tableName> ' is not defined"in SQLAlchemy 导入数据时

mysql - 如何为表单生成器及其记录创建数据库表?

ruby-on-rails - Faker gem 的问题

ruby-on-rails - 增强太阳黑子 (solr)

ruby-on-rails - 我可以使用 rails 的设计将 linkedin 连接到我的站点吗?

ruby-on-rails - 从实例方法中访问 ActiveSupport::Concern 类方法

ruby-on-rails - rails : cattr_accessor and class variables

database - 完全参与的关系和识别关系有什么区别?