У меня есть пользователи и проекты. У пользователя может быть много проектов, и у проекта может быть много пользователей. Теперь у проекта есть определенный пользователь как автор или создатель, т. Е. у проекта есть один создатель, и создатель также является пользователем. Как сопоставить это отношение в рельсах !!!Ruby on the rails relations
ответ
#Project
has_and_belongs_to_many :users
belongs_to :author, :class_name => "User"
#User
has_and_belongs_to_many :projects
has_many :authored_projects, :class_name => "Project", :foreign_key => "author_id"
И вы должны добавить author_id
в таблицу проектов.
Таким образом, вы можете использовать: project.author
, user.authored_projects
и т.д.
Попробуйте
class User < ActiveRecord::Base
has_and_belongs_to_many :projects
has_many :created_projects, :class_name => "Project", :foreign_key => "creator_id"
end
class Project< ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :creator, :class_name => "User"
end
Я думаю, что вам не нужно указывать 'foreign_key' в' Project', это необязательно: http://stackoverflow.com/questions/9555984/rails-foreign-key-column-name-convention-for-a-unary -many-many-relationship. Также необходимо установить связь между создателем и его проектами. –
да thats true @MikhailD ... спасибо –
спасибо guyz за быстрый ответ !! – roxxypoxxy
- 1. Rails - Extend the Ruby Gem
- 2. Ruby ON rails- Webrick
- 3. Ruby on Rails: Подклассы
- 4. Ruby On Rails Маршруты
- 5. Friendly_ID Ruby on Rails
- 6. ruby on rails configuration
- 7. Ruby On Rails on eHost
- 8. Curl on Ruby on Rails
- 9. Ruby vs. Ruby On Rails
- 10. Ruby On Rails медленный ...?
- 11. Ruby on Rails Pagination
- 12. Ошибка Ruby on Rails
- 13. Синтаксис Ruby (on Rails)
- 14. Тестирование Ruby on Rails
- 15. Ruby on Rails: NoMethodError
- 16. Ruby on rails console
- 17. Изучение Ruby on Rails?
- 18. Ruby on Rails Scope
- 19. ruby on rails cache
- 20. Ruby on Rails Newbie
- 21. Установить Ruby on Rails
- 22. Bcrypt ruby on rails
- 23. Ruby on Rails NameError
- 24. Ruby On Rails TCPSocket
- 25. Ruby on Rails Stylesheet
- 26. Ruby on Rails Concurrency
- 27. Ruby on Rails decimals?
- 28. Ruby On Rails --api
- 29. Ruby on Rails Secrets.yml
- 30. Ruby on Rails + EventMachine?
Спасибо, работал идеально в соответствии с требованием. – roxxypoxxy
Что делать, если я хочу сделать, например project = User.last.projects.create (params [: projects]), в настоящее время эти значения не настроены в таблице соединений, т.е. Я не могу получить project.users, выполнив project = User.last.projects.create (params [: projects]) – roxxypoxxy
@roxxypoxxy, странно, но он должен работать: http://guides.rubyonrails.org/association_basics .html # has_and_belongs_to_many-association-reference посмотреть 4.4.1.15. Новая запись должна быть создана в таблице ProjectUsers. –