Я пытаюсь отобразить список действий в форме json, чтобы использовать эти данные в своем приложении AngularJS. Это моя деятельность контроллер:Включить данные пользователя в другом контроллере
def index
@activities = PublicActivity::Activity.order("created_at desc")
respond_to do |format|
format.json do
render :json => @activities.to_json()
end
end
end
И это делает JSON как это:
{"id":3,"trackable_id":6,"trackable_type":"Movie","owner_id":1,"owner_type":"User","key":"movie.create","parameters":{},"recipient_id":null,"recipient_type":null,"created_at":"2015-12-30T12:31:24.765Z","updated_at":"2015-12-30T12:31:24.765Z"},
{"id":2,"trackable_id":5,"trackable_type":"Movie","owner_id":1,"owner_type":"User","key":"movie.create","parameters":{},"recipient_id":null,"recipient_type":null,"created_at":"2015-12-30T11:55:06.766Z","updated_at":"2015-12-30T11:55:06.766Z"},
Как вы можете видеть, что это значение называется owner_id
. Это совпадает с user id
пользователя, который выполнял эту операцию.
У меня, конечно, есть модель пользователя с именем, электронной почтой и т. Д. Таким образом, для первого пользователя с идентификатором 1 это выглядит так,
{"id":1,"email":"[email protected]","name":"John Doe"},
Можно ли проверить owner_id
в деятельности и найти user_id
, совпадающий, а затем добавить имя, адрес электронной почты и т.д. значение контроллер активности?
Результат будет JSON рендеринга, как это:
{"id":3,"trackable_id":6,"trackable_type":"Movie","owner_id":1,"email":"[email protected]","name":"John Doe","owner_type":"User","key":"movie.create","parameters":{},"recipient_id":null,"recipient_type":null,"created_at":"2015-12-30T12:31:24.765Z","updated_at":"2015-12-30T12:31:24.765Z"},
{"id":2,"trackable_id":5,"trackable_type":"Movie","owner_id":1,"email":"[email protected]","name":"John Doe","owner_type":"User","key":"movie.create","parameters":{},"recipient_id":null,"recipient_type":null,"created_at":"2015-12-30T11:55:06.766Z","updated_at":"2015-12-30T11:55:06.766Z"},
Эй Уэса, спасибо за вход. Похоже, что он работает. У меня есть вопрос, как, как Rails знает, что такое владелец? Все это происходит через кристалл Public Acitivity, я сам не определил владельца. –
Драгоценный камень должен определять ассоциацию на основе 'activity', имеющего атрибут' owner_id'. Посмотрев на документы gem, похоже, что 'owner' является именем по умолчанию для ассоциации –
Вот что я подумал. Спасибо, у меня есть еще одна проблема, возможно, вы можете проверить ее, чтобы узнать, можете ли вы придумать решение. Я обновил свой вопрос с проблемой. В любом случае, спасибо за помощь. –