2013-12-09 3 views
0

나는이 put 메소드를 사용하는 동안 문제가 발생했습니다.Ruby에서 '업데이트'를위한 NoMethodError

나는 '성공'줄에 다음과 같은 오류 메시지를 받고 있어요!

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

이것이 레일스 또는 액티브 레코드 일지는 모르겠지만이 오류가 발생하지는 않습니다. /App/lib/Download.rb:3:in' ': undefined 메소드'attr_accessible 'for Download : 클래스 (NoMethodError) –

+1

예, 잠깐만, 고쳐 주도록하겠습니다 ... – RustyToms