前提
RoR6である複数のレコードを取得し、その順番をランダム順にするためにshuffleメソッドを使用しています。
しかし、newアクションのときとcreateアクションの両方でbefore_actionをしているため、createアクションが実行されるタイミングでnewアクションのときと異なる順番になってしまいます。
実現したいこと
newメソッドだけでレコードをランダム順に並び替え、createアクションではnewメソッドで並び替えられたものと全く同じ並び順のレコードを使いたい。
該当のソースコード
ruby(articles_controller)
1before_action :random_articles, only: [:new, :create] 2 3def new 4end 5def create 6end 7 8private 9def random_articles 10 @articles = Article.all.shuffle 11end
ソースコードは超簡易的に記述していますが、要するにnewアクションの時にArticle.allがランダム順で@articlesに格納されますが、createアクションに移った時@articlesの順番がnewメソッドの時と同じになればよいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/05 12:10
2022/09/05 12:24
2022/09/05 13:01
2022/09/05 14:52