0
したがって、ネストされたフィールドがサブミット時にロールバックを引き起こしているこの問題に直面しています。私はここではレール5ロールバックを引き起こすネストされたフィールド
を使用していて、新しいです。ここで、コントローラのアクション
def new
@match = Match.new
@match.heros.build
end
def create
@match = cur_user.matches.build(matches_params)
@match.save
end
を作成するのparams試合で
= form_for(@match) do |f|
= f.label :map, value: "Map Played:"
= f.select "map",
[["Select Map", 0]
= f.label :heros, value: "Hero Played:"
= f.fields_for :heros do |h|
= h.select "hero",
[["Select Hero", 0]
= f.submit "Submit"
のform_for簡体
def matches_params
params.require(:match).permit(:map, heros_attributes: [:id, :hero])
end
です。私が持っているのは
has_many :heros, dependent: :destroy
accepts_nested_attributes_for :heros
とhero.rbに私は
belongs_to :match
を持っている私が提出押すのと私が得るmatch.errors.full_messages @実行している上、ロールバックを取得[「ヒーローズマッチが存在しなければならない」]
すべてのヘルプ大いに感謝します。
編集:ビューはhamlにあります。
モデルアソシエーションを定義したのは、 'Match'のように多くの' Heros'があります。だから、 'heroos 'を作る前にまず' match'を作る必要があります。この行で '@match = cur_user.matches.build(matches_params)'を実行すると、最初に 'match'を作成せずに' heros'を作成/更新しています。 –