Активное хранилище и вложенные атрибуты - PullRequest
0 голосов
/ 25 марта 2020

Я искал повсюду в течение 3 часов, и я ничего не мог найти ... ни одной вещи.

Вот моя проблема:

# User Model
class User < ApplicationRecord
  has_one :profile, class_name:"UserProfile", dependent: :destroy
  accepts_nested_attributes_for :profile
end

# UserProfile Model
class UserProfile < ApplicationRecord
  belongs_to :user

  has_one_attached :avatar
end

# Form
<%= simple_form_for(current_user, :url => update_profile_settings_path, :method => :put) do |f| %>
  ...
  <%= f.simple_fields_for :profile do |p| %>
    <%= p.input :avatar %>
    <%= p.input :firstname %>
  <% end %>
<% end %>

# Controller
def update_profile_settings
  if current_user.update(user_params)
    redirect_to account_profile_settings_path, notice: 'Vos données ont bien été modifiées.'
  else
    render :profile_settings
  end
end

private

def user_params
  params.require(:user).permit(:id, :email, :avatar, :password, :password_confirmation, :current_password, profile_attributes: [:id, :firstname, :lastname, :bio, :birth_date, :avatar])
end

Проблема:

По какой-то причине, если я только попытаюсь загрузить аватар, он не будет работать.

НО, если я попытаюсь загрузить аватар и обновлю другое поле как хорошо (скажем, поле имени, которое также является вложенным_атрибутом пользователя), тогда аватар загружается / обновляется.

Может кто-нибудь помочь, пожалуйста?

Я перепробовал все, не смог найти что угодно ... Это сводит меня с ума.

...