Closed shuhei-T closed 2 years ago
ローカル環境では動作しておりました箇所が、herokuにデプロイ後、production環境でセレクトボックスの中身が表示されていませんでした。ローカル環境と同様に動作させたいです。
[本番環境] optionタグの中身が空になっているのが分かります。
option
[ローカル環境] optionタグの中がしっかり存在します。
app/views/logs/new.html.erb
<div class="mb-3"> <%= f.fields_for :log_feeds, @logs.log_feeds.build do |log_feeds_f| %> <div class="mb-3"> <%= log_feeds_f.label :name, class: 'form-label' %> <%= log_feeds_f.collection_select(:feed_id, Feed.all, :id, :name, {prompt: "--"}, {class: 'form-select', style: 'display: inline-block;width: auto;'}) %> </div> <div class="mb-3"> <%= log_feeds_f.label :count, class: 'form-label'%> <%= log_feeds_f.number_field :count, class: 'form-control', style: 'display: inline-block;width: auto;' %> </div> <% end %> </div>
あらゆるネット記事を探しましたが、根本的な原因はわかりませんでした。
fields_for
@logs.log_feeds.build
seed
$ heroku run rails db:seed main Running rails db:seed on ⬢ reptileslog... up, run.5358 (Free) rails aborted! ActiveRecord::RecordInvalid: バリデーションに失敗しました: Logを入力してください /app/vendor/bundle/ruby/3.0.0/gems/activerecord-6.1.4.4/lib/active_record/validations.rb:80:in `raise_validation_error' /app/vendor/bundle/ruby/3.0.0/gems/activerecord-6.1.4.4/lib/active_record/validations.rb:53:in `save!' /app/vendor/bundle/ruby/3.0.0/gems/activerecord-6.1.4.4/lib/active_record/transactions.rb:302:in `block in save!' /app/vendor/bundle/ruby/3.0.0/gems/activerecord-6.1.4.4/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
git push heroku mainをしてから、 heroku run rails db:seedすることで解決しました。
git push heroku main
heroku run rails db:seed
質問・実現したいこと
ローカル環境では動作しておりました箇所が、herokuにデプロイ後、production環境でセレクトボックスの中身が表示されていませんでした。ローカル環境と同様に動作させたいです。
[本番環境]
option
タグの中身が空になっているのが分かります。[ローカル環境]
option
タグの中がしっかり存在します。該当のソースコード
app/views/logs/new.html.erb
考えられる原因
あらゆるネット記事を探しましたが、根本的な原因はわかりませんでした。
試したこと
fields_for
に@logs.log_feeds.build
を渡してみましたが、動作は変わりませんでした。追記
seed
ファイル(餌のデータ)をherokuに登録していないことに気づき、以下のコマンドを実施しました。エラーでデータが入らない状況です。