Как найти значения таблицы с совпадающим идентификатором с другой таблицей.
У меня есть эти таблицы:Рельсы, найти таблицу, где сопоставлять другую таблицу
Zombie_users Body_status
| id | name | | id| Zombie_id| body_id | status|
|----|------| --> |---|----------|---------|-------|
| 1 | Joe | | 1 | 1 | 2 | true |
Zobmie_users Tools Body_impacts
| id | name | | id |user_id| name | | id| tool_id| body_id | impact |
|----|------|--> |----|-------|------|--> |---|--------|---------|--------|
| 1 | Joe | | 1 | 1 |hammer| | 1 | 1 | 2 | 10% |
Мне нужно найти все user -> tools
, которые имеют user --> Body_status = false
.
Я имею в виду, если мы имеем Body_impact -> body_id -> 2
и Body_status -> body_id -> 2
, которые также имеют status = true
исключить этот инструмент из списка
samething так:
@Body_status = @zombie.Body_status.where(Body_status: { :status=> false })
@tools = @zombie.tools.includes(:Body_impacts).where(@Body_status.body_id })
Я знаю, что это не рабочий код, но он прекрасно объясняет логику желаемое действие.
обновление
Мои модели:
class ZombieUser < ActiveRecord::Base
has_many :body_statuses
has_many :bodies, through: :body_statuses
has_many :tools
class BodyStatus < ActiveRecord::Base
belongs_to :zombie_users
belongs_to :bodies
class Tool < ActiveRecord::Base
belongs_to :zombie_users
has_many :body_impacts
has_many :bodies, :through => :body_impacts
accepts_nested_attributes_for :body_impacts,
class BodysImpact < ActiveRecord::Base
belongs_to :tools
belongs_to :bodies
Можете ли вы разместите свои модели с ассоциациями в вопросе? – Pavan
, пожалуйста, разместите здесь свою ассоциацию. –
@Pavan, Спасибо, я добавил модели. – GEkk