2009-05-25 26 views
1

如果我說這個控制器:創建模型對象 - 是一個一到一個場匹配所需?

@order = Order.new(params[:order]) 

爲此需要什麼工作?

是否有需要將所有的字段之間params[:order]和一比一匹配訂單模式?

,或者可以有在params[:order]比要求的實例化一個訂購更多或更少的字段?

回答

1

PARAMS [:爲了]本身應該是散列,其中每個鍵是模型字段的名稱。要了解Rails的表單字段名稱轉換成params哈希表,寫與助手的form_for和查看源視圖模板。

可以有更多或更少的字段,是的。額外的字段將被忽略。更少的字段不會被複制到實例對象中。你根本不需要任何東西來實例化一個ActiveRecord對象。 (對象有效性和節約是一個不同的故事 - 他們調用驗證和ActiveRecord的回調機制。)

+0

好了,沒有問題實例化對象 - 你可能會遇到的問題是,當您嘗試保存或更新。在這種情況下,有較少的字段可能會違反數據庫要求,但直到那時纔會違反數據庫要 – eggdrop 2009-05-25 19:07:52

1

有確實可以更少的字段。

請確保您有必要的,雖然任何驗證各個領域!

+0

莫不是也有多個字段的形式比模型? ActiveRecord會忽略多餘的? – eggdrop 2009-05-25 19:03:34