我正在使用Angular Rails Resource处理带有轨道的角应用程序。当用户更新照片时,我想查询关联并将属性更新为true
。
我已阅读Angular Rails资源文档,但我没有看到有关查询关联的详细信息。这是一个有角度的东西,还是一个有轨的东西?
这是我的角度代码:
$scope.uploadHeadshot = ->
Upload.upload(
url: window.apiUrl + '/personas/' + $routeParams.unique_code + '/' + $routeParams.slug
method: 'PUT'
data: persona: headshot_attributes:
image: $scope.headshot
crop_x: $scope.cropAttributes.cropImageLeft
crop_y: $scope.cropAttributes.cropImageTop
crop_w: $scope.cropAttributes.cropImageWidth
crop_h: $scope.cropAttributes.cropImageHeight
# right here
badge_attributes: completed: true).then ((response) ->
$mdDialog.hide response.data
resizeImage(false)
return
)
rails code
def update
@persona = Persona.friendly.find params[:id]
@persona.assign_attributes persona_params
return unprocessable_entity 'Invalid parameters', @persona.errors unless @persona.save
render json: @persona, include: %w(modules owner badges)
end
在persona_params
我有一个属性
badge_attributes: [:id, :completed]
我还有badge_type
徽章上的attr,所以从角度方面我可以得到当前用户,做一个badge.where(badge_type: 'badge type').update(completed: true)
,但我不知道如何从角度做到这一点。或者这可能是你可以从#update
if params[:badge_attributes]
Badge.where(badge_type: 'badge type').first.update(completed: true)
end
我发布的内容没有做任何事情,但它没有打破照片上传的发生,我可以看到badge_attribute
参数被发送。有谁知道我怎么能做到这一点?
答案 0 :(得分:0)
通过使用导轨进行重物提升,我能够解决这个问题。
if params[:badge_attributes]
badge = Badge.where(persona_id: current_persona.id, badge_type: params[:badge_attributes][:badge_type]).first
badge.update_attributes(completed: true)
end