У меня есть приложение в рельсах на героку с использованием облачного кода для изображений.Для загрузки этих изображений я использую Attachinary gem .Проблема в том, что изображения отправляются на облачный сервер, но не сохраняются в БД.Моя форма использует remote: true
для отправки данных, и консоль возвращает это:
Completed 406 Not Acceptable in 4978ms (ActiveRecord: 335.3ms)
ActionController::UnknownFormat - PerfilController#update is missing a template for this request format and variant.
request.formats: ["text/javascript", "application/ecmascript", "application/x-ecmascript", "*/*"]
request.variant: []:
Perfil Controller
class PerfilController < SuperSiteController
before_action :set_user, only: [:show, :edit, :update, :destroy]
# skip_before_action :verify_authenticity_token #evita erro 422
skip_before_action :verify_authenticity_token, only: [:update]
def index
@usuarios = User.all
end
def show
@q = Page.ransack(params[:q])
end
def new
@usuario = User.new
@q = Page.ransack(params[:q])
end
def edit
@q = Page.ransack(params[:q])
@usuario = User.find(current_user.id)
end
def create
@usuario = User.new(user_params)
respond_to do |format|
if @usuario.save
format.html { redirect_to "/#cadastro", notice: 'Usuário cadastrado com sucesso' }
format.json { render :show, status: :created, location: @marca }
# format.js
else
format.html { redirect_to "/#cadastro", notice: 'Este email já está cadastrado' }
format.json# { render json: @usuario.errors, status: :unprocessable_entity }
end
end
end
def update
respond_to do |format|
if @usuario.update(user_params)
if @usuario.nome_cartao.present? && @usuario.cartao.present? && @usuario.validade.present? &&
@usuario.cvv.present?
Iugu.api_key = "xxxxxxxxxxxxxxxxxxxxxxxxx"
charge = Iugu::Charge.create({
"email" => @usuario.email,
items: [{
description: "Cadastro Cartão",
quantity: 1,
price_cents: 0
},{
description: "Desconto",
quantity: 1,
price_cents: "0"
}],
payer: {
# cpf_cnpj: current_user,
name: @usuario.nome_cartao,
phone: @usuario.wpp,
email: @usuario.email,
address: {
street: @usuario.rua,
# city: current_user.cidade,
# state: current_user.estado,
country: "Brasil",
zip_code: @usuario.cep
}
}
}
)
customer = Iugu::Customer.create(email: @usuario.email, name: @usuario.nome_cartao)
Iugu::Subscription.create(plan_identifier: 'cadastro_cartao', customer_id: customer.id)
puts customer.invoices
end
# format.html { redirect_to edit_perfil_path, notice: 'Usuário atualizado com sucesso' }
format.html
format.json { render json: @usuario }
format.js
else
format.html { render :edit }
format.json { render json: @usuario.errors, status: :unprocessable_entity }
format.js
end
end
end
def destroy
@usuario.destroy
respond_to do |format|
format.html { redirect_to root_url, notice: 'Usuário excluído com sucesso' }
format.json { head :no_content }
end
end
def solicitacao
@user = current_user
NovaMandalaMailer.solicitacao(@user).deliver
redirect_to edit_perfil_path(current_user.id), notice: "Obrigado! Sua solicitação foi enviada."
end
def enviar_email_contato
@nome = params[:nome]
@email = params[:email]
@assunto = params[:assunto]
@mensagem = params[:mensagem]
ContatoMailer.enviar_email_contato(@nome, @email, @assunto, @mensagem).deliver
redirect_to contato_path, notice: "Sua mensagem foi enviada, entraremos em contato em breve."
end
def confirmacao_cadastro
@nome = current_user.name if current_user.name.present?
@email = current_user.email
ConfirmacaoMailer.confirmacao_cadastro(@nome, @email).deliver
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@usuario = User.friendly.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
params.require(:user).permit(:last_sign_in_ip, :last_sign_in_ip, :current_sign_in_ip, :last_sign_in_at,
:current_sign_in_at, :sign_in_count, :remember_created_at,
:email, :encrypted_password, :password, :reset_password_token,
:name, :wpp, :altura, :image1, :image2, :image3, :image4, :image5,
:o_que_falta, :tipo_roupa, :marcas, :instagram, :nao_gosta,
:cor1, :cor2, :cor3, :cor4, :cor5, :obs_stylist, :nascimento,
:profissao, :cep, :rua, :numero, :complemento, :cartao, :peso,
:nome_cartao, :validade, :cvv, :image, :avatar, :slug,
corpo:[], como_quer_receber:[], cores:[], ficou_sabendo:[],
tamanho_cima:[], tamanho_baixo:[], photos:[], opcoes_pecas:[])
end
end
Форма
<%= form_for @usuario, :url => url_for(:controller => 'perfil', :action => 'update'), :html => {remote: true, class: 'perfilForm' } do |f| %>
<section class="boxPerfil">
<section class="row">
<section class="column large-12 medium-12 small-12 circuloPerfil">
<div class="grupo1Fotos">
<label class="foto1 foto uploadFotos">
<%= image_tag 'site/icons/faixa.png', class: "adesivo" %>
<!-- <img src="https://picsum.photos/95/115" alt=""> -->
<% if @usuario.image1? %>
<%= cl_image_tag(@usuario.image1.path, { size: '95x115', crop: :thumb }) %>
<% else %>
<p>Cadastre uma imagem aqui</p>
<% end %>
<%= f.attachinary_file_field :image1 %>
</label>
<!-- END FOTO 1 -->
<label class="foto2 foto uploadFotos">
<%= image_tag 'site/icons/faixa.png', class: "adesivo" %>
<!-- <img src="https://picsum.photos/138/177" alt=""> -->
<% if @usuario.image2? %>
<%= cl_image_tag(@usuario.image2.path, { size: '138x177', crop: :thumb }) %>
<% else %>
<p>Cadastre uma imagem aqui</p>
<% end %>
<%= f.attachinary_file_field :image2 %>
</label>
<!-- END FOTO 2 -->
</div>
<!-- GRUPO FOTOS -->
<label class="foto3 foto uploadFotos">
<%= image_tag 'site/icons/faixa.png', class: "adesivo" %>
<% if @usuario.image3? %>
<%= cl_image_tag(@usuario.image3.path, { size: '130x200', crop: :thumb }) %>
<% else %>
<p>Cadastre uma imagem aqui</p>
<% end %>
<%= f.attachinary_file_field :image3 %>
<input type="file">
</label>
<!-- END FOTO 3 -->
<label class="foto4 foto uploadFotos">
<%= image_tag 'site/icons/faixa.png', class: "adesivo" %>
<% if @usuario.image4? %>
<%= cl_image_tag(@usuario.image4.path, { size: '120x160', crop: :thumb }) %>
<% else %>
<p>Cadastre uma imagem aqui</p>
<% end %>
<%= f.attachinary_file_field :image4 %>
</label>
<!-- END FOTO 4 -->
<label class="foto5 foto uploadFotos">
<%= image_tag 'site/icons/faixa.png', class: "adesivo" %>
<% if @usuario.image5? %>
<%= cl_image_tag(@usuario.image5.path, { size: '110x188', crop: :thumb }) %>
<% else %>
<p>Cadastre uma imagem aqui</p>
<% end %>
<%= f.attachinary_file_field :image5 %>
</label>
<section class="boxInfosUser">
<div class="sobre">
<h1><%= @usuario.name if @usuario.name.present? %></h1>
<p><%= @usuario.obs_stylist if @usuario.obs_stylist.present? %></p>
</div>
<div class="cores coresPerfil">
<h3>CORES:</h3>
<% n2 = 0 %>
<%= f.collection_check_boxes(:cores, User::CORES, :first, :last) do |b| %>
<%= b.label do %>
<% n2 +=1 %>
<%= b.check_box %>
<div class="paleta paleta<%= n2 %>">
<div class="cor cor1"></div>
<div class="cor cor2"></div>
<div class="cor cor3"></div>
<div class="cor cor4"></div>
</div>
<% end %>
<% end %>
<h3>MARCAS:</h3>
<p><%= @usuario.marcas if @usuario.marcas.present? %></p>
</div>
<div class="informacoes">
<h2>TAMANHO:</h2>
<p>parte de cima:
<%=
if @usuario.tamanho_cima.present?
@usuario.tamanho_cima.drop(1).map {|str| "\"#{str}\""}.join(', ').gsub(/"|^ +| $+|\n/i,'').to_s
end
%>
</p>
<p>parte de baixo:
<%=
if @usuario.tamanho_baixo.present?
@usuario.tamanho_baixo.drop(1).map {|str| "\"#{str}\""}.join(', ').gsub(/"|^ +| $+|\n/i,'').to_s
end
%>
</p>
<h2>ALTURA E PESO:</h2>
<p><%= @usuario.altura if @usuario.altura.present? %> | <%= @usuario.peso if @usuario.peso.present? %></p>
<h2>TIPO DE CORPO</h2>
<p>
<%=
if @usuario.corpo.present?
@usuario.corpo.drop(1).map {|str| "\"#{str}\""}.join(', ').gsub(/"|^ +| $+|\n/i,'').to_s
end
%>
</p>
<!-- <h2>ESCOLHA DAS PEÇAS</h2>
<p><%#= @usuario.tipo_peca if @usuario.tipo_peca.present? %></p> -->
</div>
<div class="avatar">
<label class="foto6 foto uploadFotos">
<% if @usuario.avatar? %>
<%= cl_image_tag(@usuario.avatar.path, { size: '175x262', crop: :thumb, class: "avatar" }) %>
<% else %>
<p>Cadastre sua foto aqui</p>
<% end %>
<%= f.attachinary_file_field :avatar %>
</label>
<%= image_tag "site/thumbs/foto.png" %>
</div>
<div class="descricao">
<div>
<p><%= @usuario.instagram if @usuario.instagram.present? %> | nascimento: <%= @usuario.nascimento if @usuario.nascimento.present? %>, <%= @usuario.profissao if @usuario.profissao.present? %></p>
</div>
<!-- <div class="formaCorpo">
<%= image_tag "site/icons/triagulo.png" %>
<p>(alterar)</p>
</div> -->
<%#= f.submit "SALVAR FOTOS" %>
</div>
</section>
</section>
</section>
</section>
<!-- ================================== END BOX -->
<% end %>
Кто-то уже получил эту ошибку раньше?
Спасибо!