2011-03-21 34 views
0

嗨 我遇到了一個奇怪的問題與我的應用程序,它不會保存到sqlite數據庫。當我看着日誌,它給了我這個。Ruby on Rails:提交的表單不會插入到SQL

Parameters: {"utf8"=>"✓", "authenticity_token"=>"/+...+...=", "product"=>{"title"=>"test", "user_id"=>"1"}, "commit"=>"Create Product"} 
    Product Load (0.2ms) SELECT "products"."id" FROM "products" WHERE ("products"."title" IS NULL) LIMIT 1 
    AREL (0.3ms) INSERT INTO "products" ("title", "body", "created_at", "updated_at", "user_id") VALUES (NULL, NULL, '2011-03-21 09:59:57.546656', '2011-03-21 09:59:57.546656', NULL) 

這是一個problaby newbiefault,但我不知道該怎麼做:/

回答

0

您需要params哈希表傳遞給你的對象,當你像這樣創建:

def create 
    @product = Product.new(params[:product] 
    if @product.save 
    # TODO: handle save errors,eg from failed validations etc 
    end 

    respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @product } 
    end 
end 
+0

嗨! 我錯過了...... params [:product] ..就是這樣!謝謝! :) – Philip 2011-03-21 13:07:04

0

這似乎是想爲自己創建的所有字段插入NULL值。 問題必須出現在控制器文件中,而不是sql代碼。

您可能正在保存一個沒有設置任何屬性的對象。 您是否在新建創建?因爲如果我正確地remmeber 創建採取散列的參數,並立即將對象保存到數據庫。 也就是說如果你去Myclass.create(),它會失敗。

當然,如果你粘貼你的控制器代碼,調試會更容易。

另外,你是否從params ['product']獲得產品參數? 也就是說params ['product'] ['title']或params ['title']?

+0

嗨, 這是我的production.controller代碼, 高清新 @ product = Product.new respond_to do | format | format.html#new.html.erb format.xml {render:xml => @product} end end – Philip 2011-03-21 10:23:23