Après avoir résolu ma question par Matteo Alessani dans Rails - Id can't be found in Forms, j'ai remarqué que mon formulaire ne sauve pas les champs que je passe.Rails - Formulaires agissant Bizarre: ne pas enregistrer aucun text_field
Je copie ici tout le morceau de code que j'ai de l'autre question:
Routes:
resources :honors
Modèle:
class Honor < ActiveRecord::Base
belongs_to :person, :class_name => 'Person', :foreign_key => "person_id"
belongs_to :honored, :class_name => 'Person', :foreign_key => "honored_id"
belongs_to :group, :class_name => 'Group', :foreign_key => "group_id"
Controller:
def new
@person = Person.find(params[:person])
@honored = Person.find(params[:honored])
@group = Group.find(params[:group_id])
@honor = Honor.new
end
def create
@person = Person.find(current_person)
@honor = Honor.save(:group_id => params[:honor][:group],
:person_id => params[:honor][:person],
:honored_id => params[:honor][:honored])
if @honor.valid?
flash[:success] = "Honor created."
redirect_to (:back)
else
redirect_to (:back)
end
end
Dans la vue:
<% @asked_groupmembership.each do |agm| %>
<%= link_to "Create Honor", new_honor_path(:group_id => @group.id,
:person => current_person.id, :honored => agm.member.id) %>
Mes formes:
<% form_for @honor do |f| %>
<%= f.hidden_field :group_id, :value => @group.id %>
<%= f.hidden_field :person, :value => current_person.id %>
<%= f.hidden_field :honored, :value => @honored.id %>
<div class="field">
<%= f.label :texto %><br />
<%= f.text_field :texto %>
</div>
Et l'erreur est que je peux obtenir les ID de group
et person
et honored
un, mais rien que je tape dans les formes (mes attributs sont en portugais donc je ne traduirai pas):
INSERT INTO "honors" ("group_id", "person_id", "honor_id", "texto", "nota",
"nivel_habilidade", "comprometimento", "tempo_demora",
"criatividade", "organicazao", "comunicacao", "trabalho_grupo", "created_at",
"updated_at") VALUES (39, 2, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, '2011-05-26 12:58:56.433510', '2011-05-26 12:58:56.433510')
RETURNING "id".
Remarque: les paramètres dans log sont avec les valeurs.
Merci!
j'ai eu une erreur même bizarre. Je vais ajouter un morceau que j'ai oublié sur le code qui montre mon nouvel appel. L'erreur est: 'Group (# 35572728) attendu, a obtenu la chaîne (# 3110088) app/controllers/honors_controller.rb: dans 'nouveau' app/controllers/honors_controller.rb: 25: dans 'create'' – Zeroz
est votre 25ème ligne? – arnep
Bonjour. C'est '@honor = Honor.new (params [: honneur])' – Zeroz