Как создать отношения и ассоциации для пользовательской модели Devise - PullRequest
2 голосов
/ 14 июля 2011

Я использую devise для моей модели пользователя и в файле route.rb. devise_for :users Как бы я мог публиковать сообщения пользователей?

Было бы это просто в маршрутах:

resources :users do
    resources :posts
end

Или вы должны сделать что-то особенное из-за разработки

1 Ответ

5 голосов
/ 14 июля 2011

Эти маршруты будут работать, кроме того, вам нужно настроить отношения в ваших моделях, если ваша таблица сообщений содержит 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

edit

Чтобы добавить внешний ключ к вашей модели 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

...