如何为用户模型设计创建关系和关联

Vas*_*rth 2 ruby-on-rails relational-database devise

我正在使用设计我的用户模型和routes.rb我有devise_for :users 如何给用户发帖?

它只是在路线中:

resources :users do
    resources :posts
end
Run Code Online (Sandbox Code Playgroud)

或者你必须做一些特殊的设计

Gaz*_*ler 5

这些路由将起作用,另外您需要在模型中设置关系,假设您的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
Run Code Online (Sandbox Code Playgroud)

编辑

要将外键添加到Post模型:

rails g migration add_user_id_to_posts user_id:integer
Run Code Online (Sandbox Code Playgroud)

这将在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
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下命令将这些更改迁移到数据库:rake db:migrate