我的驗證工作了一段時間,或者我想。現在,我回過頭來看看他們做了些什麼,然後我發現上面的錯誤。我認爲這意味着我正在用.new方法創建一個零對象,但我只是迷失了方向。這似乎是由控制器創建一個新對象時的一個問題,因爲即使我驗證了另一個@thing屬性的樹中的下一個驗證,也會拋出相同的錯誤。不過即使我在控制檯中創建對象並測試它的存在的.save方法仍然拋出了錯誤 - 未定義的方法「的user_id」的零:NilClass我在創建一個零對象嗎? (未定義的方法___爲零:NilClass)錯誤 - 軌道上的紅寶石
ThingsController:
def create
@thing = Thing.new(params[:thing])
@thing.user_id = @currentuser_id
if @thing.save
flash[:notice] = "Successfully created thing."
redirect_to @thing
else
#flash[:notice] = "Your thing did not get created."
render 'otherthings/show'
end
end
Thing.rb
validate :user_valid
def user_valid
errors.add("you must be logged in to add a thing") unless @thing.user_id?
end
我有點軌道上紅寶石的noob(即< 8周),這是我的第一個stackoverflow問題,所以容易對我,如果這是愚蠢的明顯。我也嘗試過params [「thing」],因爲在手動創建params以匹配日誌文件(然而params [:thing]沒有)之後,在控制檯中工作,但是這並沒有改變任何錯誤我得到的消息。
錯誤是什麼行? – Coderama 2010-10-04 22:27:15
這個錯誤是彈出來的,指的是控制器在thing.save上的調用,然後在模型行上啓動errors.add ...但我認爲下面的傢伙回答我:-) – 2010-10-04 22:55:48