2013-06-06 14 views
6

हाय मैं इस त्रुटि, का सामना करना पड़ रहा पूरी तरह से क्या खड़ी कर रहा है तो नहीं कर सकते पता लगाने के लिए नए रेल यहशून्य के लिए अपरिभाषित विधि 'मानचित्र': नील क्लास, इसका कारण क्या है?

मेरी 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> 

मेरी किताब मॉडल: book.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 

मेरे विषय मॉडल: subject.rb

class Subject < ActiveRecord::Base 
    attr_accessible :name 
    has_many :book 

end 

स्टैक ट्रेस है:

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 -- 
+2

यदि यह आरओआर है, तो 'जावा' के साथ टैग क्यों करें? – fge

+0

अपने कंट्रोलर कोड पेस्ट करें। –

+0

@fge No [टैग: जावा] संशोधन इतिहास में टैग करें। (?) – Substantial

उत्तर

14
<%= collection_select(:book,:subject_id,@subjects,:id,:name) %> 

आपका @subjects वस्तु अनिर्धारित रहता है। आप इस पेज कुछ है कि उस चर की सामग्री को सेट के लिए अपने नियंत्रक कार्रवाई में की जरूरत है उदाहरण के लिए:

@subjects = Subject.all 

options_from_collection_for_select का स्रोत देखें - पहली बात यह है संग्रह इसे करने के लिए पारित कर दिया पर एक नक्शे कॉल है (में आपका केस @subjects)।

+0

थेंक्स हटा दिया, मुझे पता था कि यह शून्य हो रहा था, लेकिन उसे नहीं पता था आपकी मदद के लिए रेल –

1
<%= collection_select(:book,:subject_id,Subject.all,:id,:name) %> 
+0

thanx में पॉप्युलेट कैसे करें –

+1

अपने कोड स्निपेट के लिए स्पष्टीकरण जोड़ने का प्रयास करें। – Matt

+0

** नियंत्रक ** में संग्रह बनाने के लिए सर्वश्रेष्ठ, फिर इसे एक आवृत्ति चर में दृश्य में पास करें, उदाहरण के लिए। '@ Subjects'। सीधे मॉडल से एक मॉडल को कॉल करना रेल के एमवीसी पैटर्न का उल्लंघन करता है। – Substantial

संबंधित मुद्दे

 संबंधित मुद्दे