前提
初学者でオリジナルアプリを作成しています。拙い質問ですが、知見をお借りできれば幸いです。
実現したいこと
データベースに保存したトランプの画像53枚をビューファイルでシャッフルした結果を表示したい
発生している問題・エラーメッセージ
エラーは出ていないが、表示されている画像の一覧が投稿順のままで、シャッフルされていない
該当のソースコード
Ruby
1 <% @librarys.each do |libra| %> 2 <% libras = Array.new %> 3 <% libras.push(libra.image) %> 4 <% libras.shuffle %> 5 <%= image_tag libras.sample, class: "show-image" %> 6 <% end %>
試したこと
インスタンス変数@librarysを最初に下記のコードで記述し、シャッフルしてみましたが、結果は変わりませんでした。また、shuffleについて調査してみましたが知見を得られず質問をさせていただくことにしました。
Ruby
1 <% @librarys.shuffle %> 2 <% @librarys.each do |libra| %> 3 <% libras = Array.new %> 4 <% libras.push(libra.image) %> 5 <% libras.shuffle %> 6 <%= image_tag libras.sample, class: "show-image" %> 7 <% end %>
補足情報(FW/ツールのバージョンなど)
データベースには、順番通りに投稿したトランプの画像データ53枚が保存されている状態です。
コントローラーのコードも記述します。
Ruby
1 2class LibrarysController < ApplicationController 3 before_action :library_set, except: [:index, :new, :create] 4 5 def index 6 @librarys = Library.order("created_at DESC") 7 end 8 9 def new 10 @library = Library.new 11 end 12 13 def create 14 @library = Library.new(library_params) 15 if @library.save 16 redirect_to root_path 17 else 18 render :new 19 end 20 end 21 22 def show 23 end 24 25 def edit 26 end 27 28 def update 29 if @library.update(library_params) 30 redirect_to library_path 31 else 32 render :edit 33 end 34 end 35 36 def destroy 37 if user_signed_in? && current_user.id == @library.user_id 38 @library.destroy 39 redirect_to root_path 40 else 41 redirect_to root_path 42 end 43 end 44 45 private 46 def library_params 47 params.require(:library).permit(:card_type, :image, :numbers).merge(user_id: current_user.id) 48 end 49 50 def library_set 51 @library = Library.find(params[:id]) 52 end 53 54end
回答2件
あなたの回答
tips
プレビュー