[RoR] many to many связи и запросы
От: Synapse  
Дата: 28.12.10 10:28
Оценка:
Тупой вопрос, но что-то не нагуглил.
Есть
class User < ActiveRecord::Base
has_and_belongs_to_many :files
end

class File < ActiveRecord::Base
has_and_belongs_to_many :users
end

Как получить все файлы данного юзера?
User.find_by_id(1).first.files насколько я понимаю, сделает лишний запрос.
Re: [RoR] many to many связи и запросы
От: kronos_vano  
Дата: 07.01.11 23:22
Оценка:
Здравствуйте, Synapse, Вы писали:

S>Тупой вопрос, но что-то не нагуглил.

S>Есть
S>class User < ActiveRecord::Base
S>has_and_belongs_to_many :files
S>end

S>class File < ActiveRecord::Base

S>has_and_belongs_to_many :users
S>end

S>Как получить все файлы данного юзера?

S>User.find_by_id(1).first.files насколько я понимаю, сделает лишний запрос.
Правильно будет User.find(1).files. Да, тут 2 запроса, но это вполне себе нормальная практика. Я никогда не юзал habtm, но я так понимаю чтобы обойтись одним запросом можно сделать File.all(:conditions => {:user_id => 1}) (для вторых рельс).
Re: [RoR] many to many связи и запросы
От: Oddm  
Дата: 26.01.11 18:20
Оценка:
Здравствуйте, Synapse, Вы писали:

S>Тупой вопрос, но что-то не нагуглил.

S>Есть
S>class User < ActiveRecord::Base
S>has_and_belongs_to_many :files
S>end

S>class File < ActiveRecord::Base

S>has_and_belongs_to_many :users
S>end

S>Как получить все файлы данного юзера?

S>User.find_by_id(1).first.files насколько я понимаю, сделает лишний запрос.

Если очень нужно в один:

File.all(:conditions => "j.user_id = 1", :joins => "JOIN files_users j ON j.file_id = files.id")


Но реально большой разницы по скорости не будет.
active
Re: [RoR] many to many связи и запросы
От: kronos_vano  
Дата: 26.01.11 22:26
Оценка:
Здравствуйте, Synapse, Вы писали:

S>Тупой вопрос, но что-то не нагуглил.

S>Есть
S>class User < ActiveRecord::Base
S>has_and_belongs_to_many :files
S>end

S>class File < ActiveRecord::Base

S>has_and_belongs_to_many :users
S>end

S>Как получить все файлы данного юзера?

S>User.find_by_id(1).first.files насколько я понимаю, сделает лишний запрос.

Да кстати. Недавно был коммит в master объявляющий habtm deprecated.
Re[2]: [RoR] many to many связи и запросы
От: Synapse  
Дата: 26.01.11 22:38
Оценка:
Здравствуйте, kronos_vano, Вы писали:

_>Да кстати. Недавно был коммит в master объявляющий habtm deprecated.


А что вместо него? has_many through?
Re[3]: [RoR] many to many связи и запросы
От: kronos_vano  
Дата: 01.02.11 16:45
Оценка:
Здравствуйте, Synapse, Вы писали:

S>Здравствуйте, kronos_vano, Вы писали:


_>>Да кстати. Недавно был коммит в master объявляющий habtm deprecated.


S>А что вместо него? has_many through?


Конечно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.