前提・実現したいこと
carrierwave を用いてユーザーアイコンの設定を実現したいのですが、以下のようなエラーが発生してしまいました。
どこの引数が間違っているのかわかりません。
自分一人で数時間、調べてみましたが解決しなかったので質問させてください。
何かわかる方、よろしくお願いします。
発生している問題・エラーメッセージ
ArgumentError in Users#edit Showing /home/vagrant/tweet_app/app/views/users/edit.html.erb where line #18 raised: wrong number of arguments (given 1, expected 2..3) Extracted source (around line #18): <p>画像</p> <!--<input type="file" name="image" value="<#%= @user.image_name %>">--> <%= file_field :image %> !この行が#18です! <p>ユーザーID</p> <input name="email" value="<%= @user.email %>">
該当のソースコード
users_controller.rb
ruby
1 def create 2 @user = User.new( 3 name: params[:name], 4 email: params[:email], 5 #image_name: "defaul_user.jpg", 6 password: params[:password], 7 intro: "こんにちは!", 8 image: "defaul_user.jpg" 9 ) 10 11 12 if @user.save 13 session[:user_id] = @user.id 14 flash[:notice] = "ユーザー登録が完了しました!" 15 redirect_to("/map") 16 else 17 render("users/new") 18 end 19 20 21 22 end 23 24 def edit 25 @user = User.find_by(id: params[:id]) 26 end 27 28 29 def update 30 @user = User.find_by(id: params[:id]) 31 @user.name = params[:name] 32 @user.email = params[:email] 33 @user.intro = params[:intro] 34 35 #if params[:image] 36 # @user.image_name = "#{@user.id}.jpg" 37 @user.image = params[:image] 38 # File.binwrite("/home/vagrant/tweet_app/public/user_images/#{@user.image_name}",image.read) 39# end 40 41 42 # if image = params[:comment][:image] 43 # @user.image.attach(image) 44 #end 45 46 if @user.save 47 flash[:notice] ="ユーザー情報を編集しました!" 48 redirect_to("/users/#{@user.id}") 49 else 50 render("users/edit") 51 end 52 end 53 54 def user_params 55 params.require(:user).permit(:name, :image, :email, :intro, :password) 56 end
edit.html.erb
html
1<%= form_tag("/users/#{@user.id}/update", {multipart: true}) do %> 2 <p>ユーザー名</p> 3 <input name="name" value="<%= @user.name %>"> 4 5 <p>画像</p> 6 <!--<input type="file" name="image" value="<#%= @user.image_name %>">--> 7 <%= file_field :image %> 8 <p>ユーザーID</p> 9 <input name="email" value="<%= @user.email %>"> 10 11 <p>自己紹介</p> 12 <textarea name="intro"><%= simple_format @user.intro %></textarea> 13 14 <input type="submit" value="保存"> 15 <% end %>
user.rb
ruby
1class User < ApplicationRecord 2 #has_one_attached :image 3 has_secure_password 4 5 mount_uploader :image, ImageUploader 6 7 validates :name, {presence: true} 8 validates :email, {uniqueness: true, presence: true} 9 10end 11
関係ありそうなところだけ抜粋しました。もし足りない情報があれば追記いたします。
試したこと
サーバーを再起動しました。
ストロングパラメーターをコメントアウトしてみました。
補足情報(FW/ツールのバージョンなど)
rails 5.2
回答1件
あなたの回答
tips
プレビュー