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

时间:2011-07-13 21:45:26

标签: ruby-on-rails devise relational-database

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

它只是在路线中:

resources :users do
    resources :posts
end

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

1 个答案:

答案 0 :(得分:5)

这些路线可以使用,另外你需要在你的模型中设置关系,假设你的帖子表包含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 db:migrate