私はユーザとキーを管理する非常に単純なアプリケーションを構築しています。キーは、ユーザーのネストされた属性です。私はRailsCast #196に触発されています。 モデルは次のように定義される:ユーザー・コントローラが強いパラメータを含むネストされたパラメータをビルドメソッドに渡す正しい方法はどれですか? (Ruby on Rails 5)
class User < ApplicationRecord
#Validations
---
#Relations
has_many :keys, :dependent => :destroy
accepts_nested_attributes_for :keys, :reject_if => :all_blank, :allow_destroy => true
end
class Key < ApplicationRecord
#Validations
---
#Relations
belongs_to :user
end
:
def user_params
params.require(:user).permit(:nom, :prenom, :section, :email, :password, keys_attributes: [:id, :secteur, :clef])
end
私はそれぞれの新しいユーザ(ユーザ制御)のための1つのキーを初期化したい:
# GET /users/new
def new
@user = User.new
key = @user.keys.build({secteur: "Tous", clef: "ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678"})
end
を
私はユーザーの鍵を初期化するために多くの方法を試しましたが、どのようにそれにパラメータを渡すのか分かりません。ユーザーは常に作成されますが、最初のキーは作成されません。エラーメッセージは発行されません。
あなたは単にkey = @ user.keys.buildを実行し、次にネストされたフォームで、ランダムキーを生成するメソッドの値を持つ隠しフィールドを追加できます。 – luissimo