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

125 views
Skip to first unread message

Dmitrij B.

unread,
Mar 18, 2013, 3:46:48 AM3/18/13
to rubyonra...@googlegroups.com
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?

--
Posted via http://www.ruby-forum.com/.

Barry

unread,
Mar 18, 2013, 4:19:18 AM3/18/13
to rubyonra...@googlegroups.com
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

понедельник, 18 марта 2013 г., 11:46:48 UTC+4 пользователь Ruby-Forum.com User написал:

Dmitrij B.

unread,
Mar 18, 2013, 4:26:07 AM3/18/13
to rubyonra...@googlegroups.com
no, its easy copy. class Product < ActiveRecord::Base

Barry

unread,
Mar 18, 2013, 4:35:19 AM3/18/13
to rubyonra...@googlegroups.com
why do you show code of Product controller, if you create new Line_Item?


понедельник, 18 марта 2013 г., 11:46:48 UTC+4 пользователь Ruby-Forum.com User написал:
Hey.

Colin Law

unread,
Mar 18, 2013, 4:38:17 AM3/18/13
to rubyonra...@googlegroups.com
On 18 March 2013 07:46, Dmitrij B. <li...@ruby-forum.com> wrote:
> Hey.
>
> After adding the item, an error undefined method `key?' for nil:NilClass

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

Dmitrij B.

unread,
Mar 18, 2013, 4:40:28 AM3/18/13
to rubyonra...@googlegroups.com
no i want add new product - http://localhost:3000/products/new
Reply all
Reply to author
Forward
0 new messages