前提・実現したいこと
Ruby on rails の練習のため簡単なSNSを作っていたのですが、ユーザーアイコンの画像を表示する部分でエラーが発生しました。
発生している問題・エラーメッセージ
undefined method `image_name' for #<User:0x000000000e5c06a8>
また、一度だけエラーメッセージがfor nilと表示されました。
該当のソースコード
これは表示するhtmlのコードです。
ファイル名はindex.html.erbです。
<div class="main users-index"> <div class="container"> <h1 class="users-heading">ユーザー一覧</h1> <% @users.each do |user| %> <div class="users-index-item"> <div class="user-left"> <img src="<%= "/user_images/#{user.image_name}" %>"> </div> <div class="user-right"> <%= link_to(user.name, "/users/#{user.id}") %> </div> </div> <% end %> </div> </div>
こっちはrailsのコードです
def index @users = User.all end def create @user = User.new( name: params[:name], email: params[:email], image_name: "default_icon.png" ) if @user.save flash[:notice] = "ユーザー登録が完了しました" redirect_to("/users/#{@user.id}") else render("users/new") end end
試したこと
user.image_nameの部分を通常の画像ファイル名に変えたところ普通に表示されました。
undefinedなので関係ないとは思いますが、念のため…
回答1件
あなたの回答
tips
プレビュー