2013-12-09 3 views
0

У меня возникли проблемы с получением этого метода put.NoMethodError для 'update' в Ruby

Я получаю следующее сообщение об ошибке в строке «успеха»:

NoMethodError - неопределенный метод `обновление» для ноля: NilClass

Пожалуйста, смотрите код ниже:

#edit download 
put '/view1/downloadedit' do 
    data = JSON.parse(request.body.read) 
    edit_id = data[0]["downloadID"] 
    @download_edit = Download.get(:download_id => edit_id) 
    puts @download_edit 
    success = @download_edit.update![0][data] 
    if success 
    status 201 
    puts 'edit saved okay' 
    else 
    status 201 
    puts 'edit failed to SAVE' 
    end 

end 

Download.rb

#class download 
class Download 
    include DataMapper::Resource 
    property :downloadID, Serial, key: true 
    property :PageID, String 
    property :title, String 
    property :dlLink, String 
    property :imgSrc, String 
    property :caption, String 
    property :dlLive, Integer 
    property :createdAt, DateTime 
    property :user_id, Integer 
end 
+0

Что вы получаете с помощью 'puts @ download_edit'? Я думаю, что у вас есть пара проблем, но один из них - '@download_edit = Download.get (: download_id => edit_id)' – RustyToms

+0

Просто пустая строка, которая странная: S –

+0

Да, это выходит как ноль:/ –

ответ

1

Вам необходимо исправить, как вы запрашиваете вашу модель и как вы его обновление, поэтому изменения ваш код:

put '/view1/downloadedit' do 
    data = JSON.parse(request.body.read) 
    edit_id = data[0]["downloadID"] 
    @download_edit = Download.get(edit_id) 
    puts @download_edit 
    success = @download_edit.update(
    attribute1: data[0][attribute1] 
    attribute2: data[0][attribute2] 
    # and so on for all the other attributes... 
) 
    if success 
    status 201 
    puts 'edit saved okay' 
    else 
    status 201 
    puts 'edit failed to SAVE' 
    end 

end 
+0

Извините, не уверен, что это строго Rails или ActiveRecord, но я не получаю эту ошибку: /App/lib/Download.rb:3:in ' ': undefined метод 'attr_accessible 'для загрузки: Class (NoMethodError) –

+1

Да, держись, позволь мне исправить это ... – RustyToms