to_model делегирован во вложении, но вложение равно нулю - PullRequest
0 голосов
/ 21 сентября 2019

Итак, я задал этот вопрос уже здесь: предыдущий вопрос и не получил большой помощи, я искал другие вопросы, похожие на мои, но без разрешения.Поэтому я снова задам вопрос в надежде получить помощь.Проблема заключается в том, что изображение, загруженное для баннера профиля пользователя, не отображается на странице показа пользователя или на странице профиля.Я использую активное хранилище.У меня уже есть

has_on_attached: banner_image

.profile-header
  = image_tag url_for(@user.banner_image)
def set_user
  @user = User.find(params[:id])
end

разработка конфигурации регистрации:

def configure_account_update_params
  before_action :configure_account_update_params, only: [:update]
  devise_parameter_sanitizer.permit(:sign_up, keys: [:firstname, :banner_image])
end

сообщение об ошибке msg image

Терминал читает при обновлении страницы профиля:

Started GET "/users/1" for ::1 at 2019-09-20 21:51:59 -0700
Processing by UsersController#show as HTML
  Parameters: {"id"=>"1"}
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]
  ↳ app/controllers/users_controller.rb:11
  Rendering users/show.html.haml within layouts/application
  ActiveStorage::Attachment Load (0.2ms)  SELECT  "active_storage_attachments".* FROM "active_storage_attachments" WHERE "active_storage_attachments"."record_id" = ? AND "active_storage_attachments"."record_type" = ? AND "active_storage_attachments"."name" = ? LIMIT ?  [["record_id", 1], ["record_type", "User"], ["name", "banner_image"], ["LIMIT", 1]]
  ↳ app/views/users/show.html.haml:2
  Listing Load (0.1ms)  SELECT "listings".* FROM "listings" WHERE "listings"."user_id" = ?  [["user_id", 1]]
  ↳ app/views/users/show.html.haml:5
  Rendered users/show.html.haml within layouts/application (5.5ms)
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ?  [["id", 1], ["LIMIT", 1]]
  ↳ app/views/layouts/_navigation.html.haml:18
  Rendered layouts/_navigation.html.haml (8.7ms)
Completed 200 OK in 61ms (Views: 57.8ms | ActiveRecord: 0.7ms)

Ответы [ 2 ]

1 голос
/ 22 сентября 2019

РАЗРЕШЕНО ВЫПУСКА:

  # If you have extra params to permit, append them to the sanitizer.
  def configure_sign_up_params
    devise_parameter_sanitizer.permit(:sign_up, keys: [:firstname, :image])
  end

  # If you have extra params to permit, append them to the sanitizer.
  def configure_account_update_params
    devise_parameter_sanitizer.permit(:account_update, keys: [:firstname, :image])
  end

, поэтому определение configure_account_update_params было разрешено для: регистрация не: account_update.Я изменил его на: account_update, и это сработало!

0 голосов
/ 21 сентября 2019

Похоже, у вас нет изображения баннера для пользователя.Если ваш макет представления ломается из-за того, что у пользователя нет баннера, используйте условный код if в своем коде

image_tag url_for(@user.banner_image) if @user.banner_image.present?

Или вы можете использовать запасное изображение для сохранения макета

image_tag url_for(@user.banner_image || '/public/fallback_banner_image.jpg')

Приведенная выше строка является примером, но вам нужно будет указать фактический файл изображения / путь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...