rails device carrierwave 画像が表示できない
Q&A
Closed
(rails初学者) device carrierwave 画像が表示できない
/view/device/registration/profile.html.erbに、
プロフィール画像の表示をしたいのですが、
新たに追加したviewなので、コントローラーへの指示が分からなく、
エラーにはまってしまい困っています。
registration/edit.html.erbや、
users/index.html.erb では、登録した画像を表示できていますので、
コントローラーの指示の問題だと思っています。
データの更新なども正常に動作しています。
=====
*registration/profile_edit.html.rb の実装はこちらを参考にしました。
https://remonote.jp/rails-devise-profile-edit
*carrierwaveのインストールはこちらを参考にしました。
https://qiita.com/shlia/items/d4fdd952b38d4140062d
=====
画像表示をさせたいページ(エラー発生前)
発生している問題・エラー
NoMethodError in Users::Registrations#profile_edit
該当するソースコード
/view/device/registration/profile.html.erb
<h3>プロフィール</h3>
<% if flash.notice %>
<p class="notice"><%= flash.notice%></p>
<%end%>
<%= form_for current_user, url: {action: 'profile_update'} do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :img %><br />
<%= f.file_field :img %>
</div>
# ここから
<% if @user.img? %>
<%= image_tag @user.img.url ,class: "icon"%>
<% else %>
<%= image_tag "default.png" ,class: "icon" %>
<% end %>
# ここまでおかしい
(以下省略)
該当するソースコード
/registration_controller.rb
# frozen_string_literal: true
class Users::RegistrationsController <
(省略)
def user_update_path_for(resource)
current_user.assign_attributes(account_update_params)
if current_user.save
redirect_to profile_edit_path, notice: 'プロフィールを更新しました'
else
render "profile_edit"
end
end
def profile_edit
end
def profile_update
current_user.assign_attributes(account_update_params)
if current_user.save
redirect_to profile_edit_path, notice: 'プロフィールを更新しました'
else
render "profile_edit"
end
end
protected
def configure_account_update_params
devise_parameter_sanitizer.permit(:account_update, keys: [:name])
end
end
======
自分で試したこと
コントローラーに下記2点を試しましたが、解消できませんでした。
該当するソースコード
/registration_controller.rb
def profile_edit
@user = User.find(params[:id])
end
もしくは、
def profile_edit
params.require(:user).permit(:name, :img, :introduction)
end
発生している問題・エラー
ActionController::ParameterMissing in Users::RegistrationsController#profile_edit
0