undefined method `map' for nil:NilClass , quelles sont les causes?
Bonjour, je suis confronté à cette erreur ,
complètement nouveau pour rails donc ne peux pas comprendre ce qui est à l'origine d'
mon newBook.html.erb
<html>
<head>
<title> new Book </title>
</head>
<body>
<h1><%= @hello_message %></h1>
<h1>Add new book</h1>
<%= form_tag :action => 'create' %>
<p>
<label for="book_title">Title</label>:
<%= text_field 'book', 'title' %>
</p>
<p>
<label for="book_price">Price</label>:
<%= text_field 'book', 'price' %>
</p>
<p>
<label for="book_subject">Subject</label>:
<%= collection_select(:book,:subject_id,@subjects,:id,:name) %>
</p>
<p>
<label for="book_description">Description</label>
<br/>
<%= text_area 'book', 'description' %>
</p>
<%= submit_tag "Create" %>
<%= end_form_tag %>
<%= link_to 'Back', {:action => 'list'} %>
</body>
</html>
mon book modèle : livre.rb
class Book < ActiveRecord::Base
attr_accessible :title, :price,:description , :created_at
belongs_to :subject
validates_presence_of :title
validates_numericality_of :price, :message=>"Error Message"
end
mon sujet, modèle : sujet.rb
class Subject < ActiveRecord::Base
attr_accessible :name
has_many :book
end
trace de la pile est :
actionpack (3.2.13) lib/action_view/helpers/form_options_helper.rb:364:in `options_from_collection_for_select'
actionpack (3.2.13) lib/action_view/helpers/form_options_helper.rb:600:in `to_collection_select_tag'
actionpack (3.2.13) lib/action_view/helpers/form_options_helper.rb:191:in `collection_select'
app/views/home/newBook.html.erb:19:in `_app_views_home_new_ook_html_erb__299261930_24178164'
actionpack (3.2.13) lib/action_view/template.rb:145:in `block in render'
activesupport (3.2.13) lib/active_support/notifications.rb:125:in `instrument'
actionpack (3.2.13) lib/action_view/template.rb:143:in `render'
# -- snipped --
- Si c'est RoR, pourquoi la balise avec le
java
? - Collez votre code de contrôleur.
- Pas de java la balise d'une révision de l'histoire. (?)
- Je suis certain que c'était là, mais ohwell, c'est fini maintenant 😉
- C'est étrange. Habituellement auto-édite montrer. Eh bien, en effet.
- ouais j'ai enlevé la balise java , iadded il cause j'ai l'habitude de répondre à java questions et attend la réponse de java gens , mais alors que par la suggestion, je l'ai enlevé
Vous devez vous connecter pour publier un commentaire.
Votre
@subjects
objet n'est pas définie. Vous avez besoin dans votre contrôleur de l'action pour cette page quelque chose qui définit le contenu de cette variable, par exemple:Voir la source pour options_from_collection_for_select - première chose qu'il fait est une carte d'appel sur la collection passée (dans votre cas
@subjects
).@subjects
. Appeler un modèle directement à partir de la vue viole les Rails' modèle MVC.Pour les personnes à la recherche de ce post et la réponse n'est pas de travail pour eux;
J'essayais de le lien de la table des "Lieux" dans la table "les Ministères".
Le code suivant a fonctionné pour moi, après avoir pris de l'inspiration à partir de l'original de la réplique;