étrangère Je voudrais savoir de quelle manière est la meilleure pour résoudre ma question:
J'ai une forme afin de sélectionner les personnes via un champ de sélection. Si le nom est manquant dans le champ de sélection, un champ de texte est disponible pour ajouter directement le nom de la personne.
- Le formulaire en new.html.erb
est le format de l'action new
du contrôleur Team
.
- La liste des personnes est extraite du modèle People
.champ de sélection, champ texte et la clé
def new
@team = Team.new
@people = People.all
end
J'ai créé un attribut dans le modèle Team
pour stocker le champ de texte new_person
:
class Team < ActiveRecord::Base
attr_accessor :new_person
...
end
Enfin, voici un extrait de mon point de vue:
<%= f.select :person_id, @people.map { |p| [p.name, p.id] } %>
<%= f.text_field :new_person %>
De toute évidence, je wo Vous souhaitez enregistrer la nouvelle personne dans la table Person
avant d'enregistrer les données du formulaire. Comme d'habitude, l'identifiant sont enregistrés au lieu des noms
À ce stade, j'ai deux questions:
1/Le tableau params a la clé new_person
ce qui ne dispose pas de la table. Il n'est donc pas possible d'utiliser la méthode Team.new(params[:team])
. Existe-t-il une solution facile pour éviter ce problème? 2/Comme j'ai besoin du person_id, comment puis-je l'obtenir quand le nom provient du champ new_person
? En utilisant la méthode before_filter
?
Merci beaucoup,
Camille.