Récupérer un ID

Bonjour/Bonsoir,

Voila mon soucis, tout d’abord voici ma table TablesFichiers lié Ã
TableDocuments.

Table Document :
id “auto”, docNom (not nul)

Table Fichier :
id “auto”, TableDocument_Id(not nul), dficNom(not nul), ficChemin(not
nul), ficDescription.
et voici également Mon Tablefichier.rhtml :

Ajout d'un fichier au document :, Clé :<%= @td.id %>

(La ligne du dessus me permet de récuperer le nom et l'ID du document de TableDocument) <%= form_tag :action=>"valider_tablefichier", :id=>@tf.id %> <%= submit_tag "Ajouter le fichier au document" %> <%= end_form_tag %>

Le but en faite et de pouvoir créer un fichier pour un document précis
lié par l’ID du document

Document ID=1
=> fichier: Photo ID=x, TableDocument_Id=1
=> fichier: Shéma de construction ID=x, TableDocument_Id=1
Pour me premettre de récuperer les fichiers par la suite.

hors j’ai un message d’erreur quand je créer mon fichier

Mysql::error: #23000Column ‘TableDocument_ID’ Cannot be null, se qui
veut dire qu’il peut pas faire le lien entre TableDocument_ID de
TableFichier et ID du TableDocument

Et j’ai essayé divers façon pour dire que TableDocument_Id = @td.id mais
sa fonctionne pas, je suis désolé si mon explication est dur a
comprendre je suis nouveau dans Ruby on Rail et j’essaye d’apprendre
:-(.

Cordialement,
Yohann

Nom du fichier : <%= text_field :tf, :dficNom %>
Chemin du fichier : <%= text_field :tf, :ficChemin%>
Description : <%= text_field :tf, :ficDescription%>

Je viens de me rendre compte que j’ai oublier le controleur :-S.

Donc le voici le voila :

#############################

Gestion TABLE FICHIERS

#############################

def joindre_tablefichier
@td = Tabledocument.find_by_id params[:id]
@tf = Tablefichier.new
flash[:td] = @td
flash[:tf] = @tf
end

def modifier_tablefichier
@tf = Tablefichier.find_by_id params[:id]
@td = Tabledocument.find_by_id params[:id]
flash[:tf] = @tf
flash[:td] = @td
redirect_to :action=>“afficher_tabledocument”
end

def supprimer_tablefichier
id = params[:tf.id]
tf = Tablefichier_by_id tf.id
tf.destroy
redirect_to :action=>“lister_tablefichier”
end

def afficher_tablefichier
@tdcs = []
tdcs = Tablecode.find :all, :conditions=>“CoType = ‘TDC’”
,:order=>“coLibelle asc”
tdcs.each { |tcs|
@tdcs << [tcs.coLibelle, tcs.id]
}
@exts = []
exts = Tablecode.find :all, :conditions=>“CoType = ‘EXT’”
,:order=>“coLibelle asc”
exts.each { |tcs|
@exts <<[tcs.coLibelle, tcs.id]
}
@td = flash[:td]
@tf = flash[:tf]
end

def valider_tablefichier
id = params[:id]
if id.nil?
@tf = Tablefichier.create params[:tf]
else
@tf = Tablefichier.update id, params[:tf]
end
if @tf.errors.count == 0
redirect_to :action=>“index”
else
redirect_to :action=>“afficher_tablefichier”
end
end

def lister_tablefichier
@tfs = Tablefichier.find :all
end

Merci beaucoup sa fonctionne :wink:

Pour info voila la commande :smiley:

<%= hidden_field :tf, :TableDocument_Id, :value => @td.id %> rajouté dans la vue.

Tu peux insérer un hidden_field en spécifiant comme valeur l’id de
tabledocument.

Thomas.

hello,
evite plutot que d’utiliser form_tag/end_form_tag, essaye d’utiliser
form_for, jamais eu de souci avec :).

Nicolas.

form_for aidé de fields_for sont tes amis.

++

yk

Le 03/09/07, Guillaume Zifro DESRAT[email protected] a écrit
:

Je me permettrai juste la remarque suivante : form_for est tr�s bien
tant que l’on affiche un seul objet dans le formulaire, qu’on utilise
uniquement les tags de base (oui, il y a des gens qui aiment �crire
leurs tags, et qui sont suffisamment feignants pour ne pas vouloir

Je l’utilise d�s que possible, principalement pour la lisibilit� qu’il
apporte, en plus de r�duire le risque d’erreur (f.hidden_field
:mon_champ laisse moins place aux erreurs de frappe que d’autres
formes plus verbeuses), mais il y a de nombreuses fois o� je suis
oblig� de faire “� l’ancienne” pour �diter en un seul formulaire
plusieurs objets.

Si quelqu’un connait un form_for multiple, je suis preneur.

P.S. : pour ceux qui seraient tent�s de me dire que faire un
formulaire pour plusieurs objets c’est sale, je vous pr�senterai mes
utilisateurs…

Le 03/09/07, [email protected][email protected] a �crit :

Pour info voila la commande :smiley:

<%= hidden_field :tf, :TableDocument_Id, :value => @td.id %> rajout� dans la vue. -- Posted viahttp://www.ruby-forum.com/.


Guillaume DESRAT / Zifro AKA guillaumed
http://zlab.fr/

Guillaume :

Je l’utilise d�s que possible, principalement pour la lisibilit� qu’il
apporte, en plus de r�duire le risque d’erreur (f.hidden_field
:mon_champ laisse moins place aux erreurs de frappe que d’autres
formes plus verbeuses), mais il y a de nombreuses fois o� je suis
oblig� de faire “� l’ancienne” pour �diter en un seul formulaire
plusieurs objets.

pour des objets AR, fields_for

Si quelqu’un connait un form_for multiple, je suis preneur.

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

En l’occurrence, les fields_for ne sont pas vraiment utilisables, car
ils se chevaucheraient (et je n’ai pas envie de faire un bloc pour
chacun des champs).

Mais là c’est plus parce que la politique du client c’est d’utiliser
du

pour le positionnement que du
+ CSS.

Le 03/09/07, Jean-François Trân[email protected] a écrit :

Si quelqu’un connait un form_for multiple, je suis preneur.

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )


Guillaume DESRAT / Zifro AKA guillaumed
http://zlab.fr/

Le 03/09/07, Guillaume Zifro DESRAT[email protected] a écrit :

Je me permettrai juste la remarque suivante : form_for est très bien
tant que l’on affiche un seul objet dans le formulaire, qu’on utilise
uniquement les tags de base (oui, il y a des gens qui aiment écrire
leurs tags, et qui sont suffisamment feignants pour ne pas vouloir

écrire la version FormBuilder de leurs tags).

Désolé, à l’avenir je veillerai à finir mes phrases. -_-’


Guillaume DESRAT / Zifro AKA guillaumed
http://zlab.fr/

Guillaume :

En l’occurrence, les fields_for ne sont pas vraiment utilisables, car
ils se chevaucheraient (et je n’ai pas envie de faire un bloc pour
chacun des champs).

Mais là c’est plus parce que la politique du client c’est d’utiliser
du

pour le positionnement que du
+ CSS.

Hein ?

Pose ta question dans un nouveau thread (parce que là on s’éloigne
du post initial) et sois plus clair.

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

tu passes une variable au bloc ouvert avec l’appel à fields_for. Tu
peux nommer cette variable comme bon te semble. Evidemment, si tu les
appelles toujours f ainsi que celle du form_for, tu vas à l’encontre
de beaucoup d’ennuis inutiles.

++

yk

Le 03/09/07, Guillaume Zifro DESRAT[email protected] a écrit
:

J’ai eu tord de finir ma “remarque” sur le form_for par une question,
ce n’�tait pas le but premier de mon intervention.
Si tu es curieux, JF, je t’enverrai la description fid�le de ce que
j’ai.

Discussion close.

Le 03/09/07, Jean-Fran�ois Tr�n[email protected] a �crit :

Pose ta question dans un nouveau thread (parce que l� on s’�loigne
du post initial) et sois plus clair.

– Jean-Fran�ois.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )


Guillaume DESRAT / Zifro AKA guillaumed
http://zlab.fr/