2012-08-11 48 views
0

我想用Rails創建3.我下面的教程維基頁面通過http://garrickvanburen.com/archive/how-to-build-a-wiki-with-ruby-on-rails-part-1/NoMethodError在RevisionsController#新/未定義的方法`[]」的零:NilClass

我相信他的教程是軌道2所以我不得不改變編碼。我在第6節輸入了app/views/revisions/new.html.erb中的編碼。一旦我在localhost/revisions/new中加載服務器,我得到以下錯誤 -

RevisionsController#new

中的NoMethodError

未定義的方法`[]」的零:NilClass

Rails.root:/家庭/ whitey7 /維基 應用程序跟蹤|框架跟蹤|全面跟蹤

應用程序/控制器/ revisions_controller.rb:30:在`新」

當我拉起revisions_controller文件和視圖行30似乎正確,或根據什麼在本教程正確。其他一切似乎都很好,但是這個。我似乎無法找到答案或如何解決這個問題。任何幫助或一些指導將不勝感激。代碼低於revisions_controller文件中列出的代碼。謝謝大家!

# GET /revisions/new 
    # GET /revisions/new.json 


def new 
    @revision = Revision.new 

    @revision.update_attribute('person_id', 
     Person.find_or_create_by_name(params[:person][:name]).id) **#Inputed from Tutorial.** 

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

你是指這樣的事情? people.create(params [:person])在Person.find_or_create_by_name(params [:person] [:name])下。id) – Awhitey98 2012-08-12 01:00:57

回答

1

params [:person]沒有設置。如果你只是想避免在這種情況下的錯誤,改爲:

unless params[:person].nil? 
    @revision.update_attribute('person_id', 
    Person.find_or_create_by_name(params[:person][:name]).id) 
end 
+0

我在下面的Revision.new中添加了params [:person],但它看起來不正確或就像我在正確的位置設置它。 – Awhitey98 2012-08-12 01:50:59

+0

你偶然知道是否是在代碼中設置params [:persons]的正確位置是?感謝上述迴應,如果我無法弄清楚,我會嘗試。 – Awhitey98 2012-08-12 01:55:19

+1

params [:person]沒有在您的代碼中設置。如果您熟悉PHP,則相當於$ _POST ['person']。在獲取請求時,params由基於您的routes.rb文件的url定義。在帖子請求中,它來自頁面上的輸入標籤。至於教程試圖做什麼,我不知道。它不應該在你的新方法中設置。 – sgrif 2012-08-12 01:59:05

相關問題