前提・実現したいこと
ポケモンのデータを1〜6匹入力し、パーティとして登録するアプリを作成中です。
データを入力しsubmitボタンを押下するとエラーが発生します。このエラーを解決したいです。
▼ 開発環境
Rails 5.2.4.3
Mac OS
発生している問題・エラーメッセージ
param is missing or the value is empty: party
該当のソースコード
(ところどころ作業中です…)
▼ PartiesController(対象エラー画像)
class PartiesController < ApplicationController def index end def new @party = Party.new @party.build_pokemon end def create @party = Party.new(party_params) if @party.save redirect_to root_path, notice: 'パーティを作成しました' else render :new end end def edit @party = Party.find(params[:id]) end def update @party = Party.find(params[:id]) end def destroy @party = Party.find(params[:id]) end private def party_params params.require(:party).permit( :party_id, :party_name, pokemons_attributes:[:pokemon_id, :name, :nickname, :gender, :ability, :nature, :item, :move1, :move2, :move3, :move4] ) end end
以下、関連ファイル
▼ PokemonsController
class PokemonsController < ApplicationController def new @pokemon = Pokemon.new end def create @pokemon = Pokemon.new(pokemon_params) end private def pokemon_params params.require(:pokemon).permit( :pokemon_id, :name, :nickname, :gender, :ability, :nature, :item, :move1, :move2, :move3, :move4, current_status_attributes:[:cs_hp, :cs_attack, :cs_defense, :cs_special_attack, :cs_special_defense, :cs_speed], base_status_attributes: [:bs_hp, :bs_attack, :bs_defense, :bs_special_attack, :bs_special_defense, :bs_speed], effort_value_attributes: [:ev_hp, :ev_attack, :ev_defense, :ev_special_attack, :ev_special_defense, :ev_speed] ) end end
▼ party.rb
class Party < ApplicationRecord has_many :pokemons accepts_nested_attributes_for :pokemons validates :party_name, presence: true end
▼ pokemon.rb
class Pokemon < ApplicationRecord has_one :current_status has_one :base_status has_one :effort_value belongs_to :party accepts_nested_attributes_for :current_status accepts_nested_attributes_for :base_status accepts_nested_attributes_for :effort_value end
▼ 対象のhtml.haml
= form_with model: @party, local: true, class: "party-register" do |f| .wrapper-party = render "shared/header" = render "shared/side-bar" = render "party" .party-name パーティ名 = text_field_tag :party_name, "", class: "party-name__input", maxlength: "6", type: "text" .register-btn .register-btn__text = f.submit "登録する", class: "register-btn__text__submit"
▼ DB
## pokemons table |Column |Type |Options | |-----------|----------|-----------| |pokemon_id |string |null: false| |name |string |null: false| |nickname |string | | |gender |string |null: false| |ability |string |null: false| |nature |string |null: false| |item |string | | |move1 |string |null: false| |move2 |string | | |move3 |string | | |move4 |string | | ### Association - has_one :current_status - has_one :base_status - has_one :effort_value - belongs_to :party ## parties table |Column |Type |Options | |-----------|----------|-----------| |party_id |string |null: false| |party_name |string |null: false| ### Association - has_many :pokemons ## current_statuses table |Column |Type |Options | |-------------------|----------|-----------| |cs_hp |string |null: false| |cs_attack |string |null: false| |cs_defense |string |null: false| |cs_special_attack |string |null: false| |cs_special_defense |string |null: false| |cs_speed |string |null: false| ### Association - has_one :pokemon, dependent: :destroy ## base_statuses table |Column |Type |Options | |-------------------|----------|-----------| |bs_hp |string |null: false| |bs_attack |string |null: false| |bs_defense |string |null: false| |bs_special_attack |string |null: false| |bs_special_defense |string |null: false| |bs_speed |string |null: false| ### Association - has_one :pokemon, dependent: :destroy ## effort_values table |Column |Type |Options | |-------------------|----------|-----------| |ev_hp |string | | |ev_attack |string | | |ev_defense |string | | |ev_special_attack |string | | |ev_special_defense |string | | |ev_speed |string | | ### Association - has_one :pokemon, dependent: :destroy ## markings table |Column |Type |Options | |-----------|-----------|-----------| |pokemon_id |references |foreign_key: true| ### Association - belongs_to :pokemon
補足情報
▼ 参考質問記事
https://teratail.com/questions/219234
https://qiita.com/hiroweb/items/74867433ab5091713521
▼ 仮説と検証作業の結果
accepts_nested_attributes_forを記述しモデルの関連レコードの登録・更新を可能にしています。
paramsの定義、privateメソッドに誤りはありますでしょうか。
何か気づきがありましたらご意見頂戴したいです。
追記 [2020.9.4]
▼_party.html.haml(冗長コードですが、とりあえず6回繰り返して記述しています)
文字数制限を超えてしまうので一部の画像とさせてください。追記依頼があれば承ります。
回答2件
あなたの回答
tips
プレビュー