我试图通过Rails4中的AngularJS将照片保存到数据库中。我使用paperclip
gem作为附件设置
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_attached_file :photo, :styles => {:thumb => "100x100>"}
end
这是我的表格:
<div ng-controller="RegistrationsController">
<form ng-submit="saveUser()" name="signUpForm" novalidate>
<input type="text" class="form-control" ng-model="user.email" ng-class="{submitted: submitted}" required />
<input type="file" ng-model="user.photo" />
</form>
</div>
这是我的angularJS控制器。在saveUser()
函数中,它将触发POST
请求。我已根据浏览器控制台日志尝试输出$scope.user.photo
但undefined
的值。
myApp.controller "RegistrationsController", ($scope, $location, $http, $modal)->
$scope.saveUser = () ->
console.log $scope.user.photo
$scope.submitted = true
if $scope.signUpForm.$valid
$http(
url: "/api/users"
method: "POST"
data: $scope.user
).success((data) ->
$scope.user = {}
$location.path "/"
return
).error (response) ->
console.log(response)
return
return
我不知道如何通过Rails中的AngularJS + Paperclip保存/上传单张照片。
以及如何保存价值。
这是create
方法的控制器:
class Api::V1::UsersController < ApplicationController
def create
@user = User.new(trusted_params)
if @user.save
UserMailer.welcome_email(@user).deliver!
render json: @user
else
render json: {
message: 'Validation failed', errors: @user.errors.full_messages
}, status: 422
end
end
private
def trusted_params
params.require(:user).permit(:first_name, :last_name, :email, :password, :photo)
end
end
任何想法将不胜感激。谢谢!
答案 0 :(得分:1)
有angular-file-upload提供程序,将$ upload注入你的控制器并使用ng-file-select指令,一切都在https://github.com/danialfarid/angular-file-upload
答案 1 :(得分:0)
查看提供的链接, 我已经成功实施了它。