Bonjour à tous,
J'ai un petit soucis suite à l'inclusion d'un nested form au sein de mon formulaire d'inscription. J'ai deux classes (User et Hero) qui sont en relation one-to-one et j'ai un petit soucis quand je veux enregistrer un utilisateur :
J'ai bien nesté mon formulaire, j'ai renseigné la relation one-to-one, j'ai rendu les attributs de Hero accessibles dans la classe User, je sais plus trop où chercher ^^
Vue Register (simplifiée) :
J'ai un petit soucis suite à l'inclusion d'un nested form au sein de mon formulaire d'inscription. J'ai deux classes (User et Hero) qui sont en relation one-to-one et j'ai un petit soucis quand je veux enregistrer un utilisateur :
Code :
Can't mass-assign protected attributes: hero
J'ai bien nesté mon formulaire, j'ai renseigné la relation one-to-one, j'ai rendu les attributs de Hero accessibles dans la classe User, je sais plus trop où chercher ^^
Vue Register (simplifiée) :
= form_for @user do |form|
.col-50
%h2 Héros
= form.fields_for :hero do |hero|
.field
= hero.label :firstname, 'Prénom'
= hero.text_field :firstname
.field
= hero.label :lastname, 'Nom'
= hero.text_field :lastname
.col-50
%h2 Connexion
.field
= form.label :email, 'Adresse email'
= form.text_field :email
Paramètres issus de mon formulaire :{"utf8"=>"✓",
"authenticity_token"=>"XAjWWFffADq00ll+yq0+CGAx2pvtj8pVOhmVYO2d1cQ=",
"user"=>{"hero"=>{"firstname"=>"Lulin",
"lastname"=>"de Dün",
"nation"=>"Empire Mécanique de Klüm",
"race"=>"Nain",
"sex"=>"Homme"},
"email"=>"test@test.com",
"pass"=>"---",
"pass_confirmation"=>"---"},
"commit"=>"S'inscrire"}
Modèle User :class User < ActiveRecord::Base
attr_accessible :contact_email, :email, :pass, :pass_confirmation, :login, tate, :hero_attributes
has_one :hero, :dependent => :destroy
end
Modèle Hero :class Hero < ActiveRecord::Base
attr_accessible :firstname, :lastname, :nation, :race, :rank, ex
belongs_to :user
end
Contrôleur Users :class UsersController < ApplicationController
def register
@title = "S'engager"
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
else
@title = "S'engager"
render 'register'
end
end
end