ActiveModel :: UnknownAttributeError неизвестный атрибут «аватар» - ActiveStorage - PullRequest
0 голосов
/ 23 сентября 2018

В настоящее время я пытаюсь прикрепить поле :avatar к Профилю.Я получаю следующую ошибку: enter image description here

Однако, следуя документам, я добавил отношение :avatar к профилю.

models/profile.rb
class Profile < ApplicationRecord
  belongs_to :user
  has_one_attached :avatar
end

Я также добавляю :avatar в сильных парам.В контроллерах профиля.

class ProfilesController < ApplicationController
  def create
    @profile = current_user.create_profile(profile_params)
  end
  ##
  private

  def profile_params
     params.require(:profile).permit(:full_name, :city, :bio, :avatar)
  end
end

Интересно, не в этом ли проблема из-за связи между пользователем и профилем.У пользователя есть один профиль, а профиль принадлежит пользователю.

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable
  has_many :photos
  has_one :profile
end

Я запрашиваю в profiles/new.html.erb в качестве вложенного файла:

<%= form_for @profile do |f| %>
  <div class="form-group">
    <%= f.label :avatar %>
    <%= f.file_field :avatar, as: :file, class: "form-control" %>
  </div>

Я вижу, что в параметрах файланаходится в аватаре, поэтому я нахожу настолько запутанным, что он не распознает :avatar в качестве атрибута.

Started POST "/profiles" for 127.0.0.1 at 2018-09-22 17:55:26 -0400
Processing by ProfilesController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==", "profile"=>{"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007ff62db322b8 @tempfile=#<Tempfile:/var/folders/86/g7_xcx392qn815kmkcm55ydc0000gn/T/RackMultipart20180922-10194-awlxd1.png>, @original_filename="profile.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"profile[avatar]\"; filename=\"profile.png\"\r\nContent-Type: image/png\r\n">

Мне удалось загрузить вложение для другой модели, поэтому при установке это не так.Есть идеи, почему я получаю эту ошибку?

...