Rails ActiveRecord Двойные Ассоциации - PullRequest
2 голосов
/ 01 августа 2011

У меня есть следующие две модели, Пользователь ..

class User < ActiveRecord::Base
  has_and_belongs_to_many :sites
end

.. и сайт:

class Site< ActiveRecord::Base
  has_and_belongs_to_many :users
end

До этого момента все нормально. Это работает, и это довольно просто. Теперь я хочу представить «основного пользователя» на Сайте. Я добавляю «primary_user_id» на сайт и пытаюсь добавить вторую ассоциацию:

class Site< ActiveRecord::Base
 has_and_belongs_to_many :user

 # my new association that doesn't work...
 has_one :primary_user, :class_name => "User", :conditions => ['id = ?', '{self.primary_user_id}'] 
end

Это не нравится ... Теперь я знаю, что могу подделать это, просто добавив метод "primary_user" на сайт, и это будет работать, но мой вопрос в том, возможно ли использование ассоциаций ActiveRecord и как

1 Ответ

1 голос
/ 01 августа 2011

has_and_belongs_to_many сложно, и большинство людей отошли от него и используют has_many через => модель. Кстати - «До этого момента все в порядке. Это работает, и это довольно просто. так все начинается. То, как они работают, когда вы «действительно» начинаете их использовать, имеет значение, и по этой причине вам, вероятно, будет легче работать с has_many.

Эти ссылки помогут:

http://paulbarry.com/articles/2007/10/24/has_many-through-checkboxes

http://thoughtsincomputation.com/posts/checkboxes-with-has_many-through

http://my.opera.com/durrantm/blog/2011/07/24/rails-simple-form-with-has-many-through-hmt-relationship

https://github.com/romanvbabenko/nested_has_many_through (гнездо).

...