Я пытаюсь выполнить угловой JS, и я хочу получить данные из вложенного ресурса, определенного в приложении rails.Angular JS ngResource с вложенными ресурсами
Я написал следующие строки:
UserMission = $resource("https://stackoverflow.com/users/:user_id/user_missions/:id", {user_id: "@user_id", id: "@id"}, {update: {method: "PUT"}})
$scope.user_missions = UserMission.query()
и я получаю следующее сообщение об ошибке:
Processing by UsersController#show as JSON
Parameters: {"id"=>"user_missions"}
User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]]
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", "user_missions"]]
Completed 404 Not Found in 10ms
ActiveRecord::RecordNotFound (Couldn't find User with id=user_missions):
app/controllers/users_controller.rb:100:in `current_resource'
app/controllers/application_controller.rb:34:in `authorize'
Мои рельсам маршруты организованы так:
resources :users do
resources :user_missions
end
Я думаю, что это приходит до меня не понимая "@id". В нем говорится, что это происходит от «объекта данных» от angularjs site, и я не совсем уверен, что это значит.
Любая помощь будет принята за благодарность.
Update
Другой вопрос. Я не нашел примеров рельсов с angularjs с использованием вложенных ресурсов (пример User has_many :missions, through: :user_missions
) с $resource
. Есть ли хороший пример того, как angularjs манипулирует вложенными ресурсами (с $resource
) с ajax?
Так что я все еще немного смущен. Как найти идентификатор из родительского объекта (Пользователь) и дочернего объекта (UserMission) и передать их ресурсу в приложении rails с помощью Angularjs и выполнить запрос вложенного отношения? – GTDev
Объявляя свои параметры по умолчанию для службы '{user_id:" @user_id ", id:" @id "}', вы говорите, что при вызове службы без параметров они получают значения от объекта, который вы передаете в вызове. В вашем случае вы вызываете службу без параметров, как в 'UserMission.query()', но вы не передаете никакого значения, поэтому служба вызывается с нулевыми значениями, поэтому сервер получает '/ users/user_missions 'который дает ошибку. Вы должны указать значения параметров в вызове, как я указал в своем ответе. – remigio