Bonjour tous le monde ,
j’ai un petit problème voici une explication de ce que j’ai fais :
j’ai crée un scaffold :
./script/generate scaffold Zone name:string interface:string
description:string
ca fonctionne bien .
puis j’ai changé <%= f.text_field :interface %> en
<%= f.select :interface , @table_Interfaces %>
@table_interfaces est un tableau qui contient les noms des interface
reseaux detecté sur la machine linux .
dans le controlleur j’ai :
@interfaces=%x[ifconfig|grep Link|cut -d " " -f 1]
@[email protected](" ")
and ca fonctionne parfaitement aussi et je peux faire toute les
opération sur mon model .
puis je voulais faire des validation sur mon model
j’ai ajouté ceci dans le fichier Zone.rb :
class Zone < ActiveRecord::Base
validates_presence_of :name
end
maintenant quand je veux crée une nouvelle zone
si j’entre tous les champ ca marche bien et je peux enregistrer
mais si je n’entre pas le nom j’ai cette erreur : (normalement j’ai
juste un message dans ma vue indiquant que le champ nom doit être
rempli)
Showing app/views/zones/new.html.erb where line #12 raised:
You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.inject
Extracted source (around line #12):
<%= f.select :interface , @table_Interfaces %>
ce qui veux dire que le model n’a pas connu l’objet @table_Interfaces
qui est déclaré seulement dans le controlleur n’est ce pas ?
est ce que je doit ajouter une autre chose dans le fichier model Zone.rb
?
merci infiniment pour votre aide .