undefined method 'model_name" pour NilClass:Classe
le navigateur me fit l'erreur suivante dans les Locaux#show:
undefined method 'model_name" pour NilClass:Classe
51: <%= form_for(@food) do |f| %>
52: <%= render 'shared/error_messages', object: f.object %>
53: <div class="field">
54: <%= f.label :nome %>
Voici mon locals_controller.rb (la fin de l'action)
def show
@local = Local.find(params[:id])
@foods = @local.foods.paginate(page: params[:page])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @local }
end
fin
Et ici foods_controller.rb (l'action de création)
def create
@food = @local.foods.build(params[:food])
if @food.save
flash[:success] = "Food created!"
redirect_to '/locals'
else
flash[:error] = "Error on creating food"
render '/locals'
end
end
Modèle alimentaire et le modèle Local sont liés avec :has_many et belongs_to
Quel est le problème? Merci
Qu'est-ce que
Locaux.find(params[:id])
tu veux dire que la portée de cette variable est le problème?
Vous avez
j'ai @aliments parce que je veux montrer en spectacle.html.erb aussi une liste d'aliments, mais la forme est d'une seule nourriture, donc je ne comprends pas
@local
? Qui sons pas défini.Locaux.find(params[:id])
tu veux dire que la portée de cette variable est le problème?
Vous avez
@food
dans une action de contrôleur et @foods
dans l'autre, mais la forme est pour @food
(au singulier), et vous dire que l'erreur est pour Locals#show
où vous utilisez @foods
(au pluriel). Quelque chose ne correspond pas là-haut dans votre code.j'ai @aliments parce que je veux montrer en spectacle.html.erb aussi une liste d'aliments, mais la forme est d'une seule nourriture, donc je ne comprends pas
OriginalL'auteur bugman | 2012-07-06
Vous devez vous connecter pour publier un commentaire.
Puis changer votre point de vue code:
Je n'ai pas plus l'erreur quand la page s'affiche, mais lorsque je tente de créer un nouvel aliment en remplissant les champs et cliquez sur le bouton "soumettre" j'ai été redirigé vers le nouveau chemin d'accès Local et aucune nourriture n'a été créé, savez-vous pourquoi?
quand j'essaie de poster le débogueur écrit ce qui suit : alimentation: !rubis/hash:ActiveSupport::HashWithIndifferentAccess nome: descrizione: "prezzo: '10' commit: Post action: créer un contrôleur: les habitants de ...Comment puis-je changer le contrôleur de la population locale sur les aliments ?
Kunwar: Merci Man !!!
OriginalL'auteur Ganesh Kunwar
Vérifier par l'ajout de code suivant (je suppose que votre modèle est Local)
@food = Local.new
Dans votre nouvelle action
Vous devez ajouter ce code dans votre "show" de l'action. Avez-vous compris que votre '@de produits alimentaires de l'instance de la variable n'est pas définie dans l'action et c'est pourquoi vous obtenez cette erreur?
OriginalL'auteur Ganesh Kunwar
Si cela se produit lorsque vous MODIFIEZ, mais il fonctionne pendant que vous CRÉEZ
Vous devez ajouter un avant l'action et de l'ensemble de la nourriture
OriginalL'auteur Lesly Revenge
Vous pouvez utiliser le code suivant:
OriginalL'auteur Harshad