前提・実現したいこと
数ある質問の中から見ていただきありがとうございます!
Ruby on railsを使って筋トレ記録アプリを作っています。
active hashを用いて実装する際にエラーメッセージが発生しました。
発生している問題・エラーメッセージ
NoMethodError in Logs#new Showing /Users/moriyamajou/originalapp/musle/app/views/logs/new.html.erb where line #13 raised: undefined method `all' for Set:Class
該当のソースコード
ruby
1記録ページ 2 3<%= form_with(model: @log, local: true) do |f| %> 4 5 <%#= f.collection_select(保存先のカラム名, オブジェクトの配列, 保存する項目, 表示されるカラム名, オプション, htmlオプション) %> 6 種目 7 <%= f.collection_select(:lift_id, Lift.all, :id, :name) %> 8 重量 9 <%= f.collection_select(:weight_id, Weight.all, :id, :name) %> 10 回数 11 <%= f.collection_select(:rep_id, Rep.all, :id, :name) %> 12 セット数 13 <%= f.collection_select(:set_id, Set.all, :id, :name) %> 14<% end %>
logs_controller.rbのソースコード
ruby
1class LogsController < ApplicationController 2 3 def index 4 end 5 6 def show 7 @log = Log.new 8 end 9 10 def new 11 @log = Log.new 12 end 13 14end
該当のactive hashのモデルのソースコード
ruby
1class SetCount < ActiveHash::Base 2 self.data = [ 3 { id: 0, name: '--' }, 4 { id: 1, name: '1' }, 5 { id: 2, name: '2' }, 6 { id: 3, name: '3' }, 7 { id: 4, name: '4' }, 8 { id: 5, name: '5' }, 9 { id: 6, name: '6' }, 10 { id: 7, name: '7' }, 11 { id: 8, name: '8' }, 12 { id: 9, name: '9' }, 13 { id: 10, name: 'お問い合わせください' }, 14 ] 15end
試したこと
種目、重量、回数でもセット数と同じ記述なのになぜセット数だけこのようなエラーが出るのか正直検討つかない。form_withについてもう一度復習し記述を見直してみたが解決には至りませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/16 13:06
2021/08/16 13:07