我正在尝试有角度的JS,我想从Rails应用程序中定义的嵌套资源中获取数据。

我写了以下几行:

UserMission = $resource("/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的“数据对象”,我不确定这是什么意思。

任何帮助,将不胜感激谢谢。

更新资料

另一个问题。我还没有找到使用嵌套资源(例如用户has_many :missions, through: :user_missions)和$resource的angularjs使用rails的任何示例。有没有一个很好的例子,说明angularjs使用ajax处理嵌套资源(使用$resource)?

最佳答案

通读我的answer到上一个问题,您应该将两个参数的值都包含在作为调用中的参数传递的对象中,即i。 e .:

$scope.user_missions = UserMission.query({user_id: some_value, id: some_other_value});

08-26 08:36