"} end -6ren">
gpt4 book ai didi

ruby-on-rails - 在 Rails 4 中通过 AngularJS 将回形针附件保存到 DB

转载 作者:行者123 更新时间:2023-12-01 05:10:50 25 4
gpt4 key购买 nike

我正在尝试通过 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 Controller 。在 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 保存/上传单张照片。

以及如何保存值(value)。

这是 create 的 Controller 方法:
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

任何想法将不胜感激。谢谢!

最佳答案

有 angular-file-upload 提供程序,将 $upload 注入(inject)您的 Controller 并使用 ng-file-select 指令,一切都在 https://github.com/danialfarid/angular-file-upload

关于ruby-on-rails - 在 Rails 4 中通过 AngularJS 将回形针附件保存到 DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com