我正在尝试有角度的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});