After adding the item, an error undefined method `key?' for nil:NilClass

Hey.

After adding the item, an error undefined method `key?' for nil:NilClass

its my controller products:

... # GET /products/new   # GET /products/new.json   def new     @product = Product.new

    respond_to do |format|       format.html # new.html.erb       format.json { render json: @product }     end   end ...

model product:

lass Product < ActiveRecord::Base has_many :line_items before_destroy : ensure_not_referenced_by_any_line_item

  attr_accessible :title, :description, :image_url, :price

  validates :title, :description, :image_url, :price, presence: true   validates :price, numericality: {greater_than_or_equal_to: 0.01}   validates :title, uniqueness: true # validates :image_url, allow_blank: true, format: {    # with: %r{ \.(gif|jpg|png)$}i,     #message: 'gif, jpg png. '   #}

  def ensure_not_referenced_by_any_line_item     if line_items.empty?       return true     else       errors.add(:base, " существуют товарные позиции")       return false     end

end

class CreateProducts < ActiveRecord::Migration   def change     create_table :products do |t|       t.string :title       t.text :description       t.string :image_url       t.decimal :price

      t.timestamps     end   end end

How solve this problem?

lass Product < ActiveRecord::Base

I don’t know if this typo is just here and occured when you copied your source code, or you have ‘lass Product’ in your model. If second, that may be reason for error

no, its easy copy. class Product < ActiveRecord::Base

why do you show code of Product controller, if you create new Line_Item?

That error means that something is nil when it should not be. Unless I have missed it, you have not shown us which line is generating the error. If you cannot work it out from the stack trace post the complete trace here. If it refers to a line in your code then tell us which that line is..

First, though, have a look at the Rails Guide on Debugging which will show you techniques that you can use to debug the code yourself. It is always better to work a problem out for yourself if possible.

Colin

no i want add new product - http://localhost:3000/products/new