Мои настройки: Rails 2.3.10, Ruby 1.8.7Получение значения из связанных моделей
Вот мои модели
class User
has_many :user_projects
end
class Project
has_many :user_projects
#has a column named "project_type"
end
class UserProject
belongs_to :user
belongs_to :project
#fields: project_id, user_id
end
Когда я вернуть JSON строку пользователя и его родственные user_projects записей, Я также хочу включить в запись user_project столбец project.project_type. Примечание. Я не хочу также включать всю запись проекта в результаты. Возможное решение - это дублирование поля project_type в user_projects, но я предпочитаю не делать этого, если это возможно, есть ли другой способ выполнить это во время действия find/read?
Просто чтобы быть ясно, вот выход JSON Я ищу
{
"user": {
"username": "bob",
"id": 1,
"email": "[email protected]"
"user_projects": [
{
"id": 15,
"user_id": 1,
"project_id": 10,
"project_type": "marketing"
}
{
"id": 22,
"user_id": 1,
"project_id": 11,
"project_type": "sales"
}
]
}
Хорошая точка, не использующая «тип» в качестве столбца, я на самом деле не делаю этого, плохой пример с моей стороны. Я предпочитаю только возвращать столбцы user_projects.user_id, project_id и project.type в контексте внутри области user_project, есть ли способ сделать это? Я думал, что смогу использовать attr_accessor и каким-то образом вытащить значение из проекта, когда будет выполняться запись user_project, но не может заставить это работать. – Bob
смотри мой ответ, похоже, это то, чего ты хочешь достичь – Pasta