我喜歡直接從表單中定義具有繼承性的mongoid對象的類型(:_type)。定義表單中的繼承類型
定義的類型和對象是相當simpel:
shapes.build({ x: 0, y: 0 }, Circle)
但現在我想知道是否有可能通過的形式使用PARAMS自動建立這樣一個對象。事情是這樣的:
<%= form_for :shapes do |s| %>
<%= s.text_field(:x) %>
<%= s.text_field(:y) %>
<%= t.hidden_field(:_type, value: "Circle") %>
<% end %>
然後使用類似:
Shapes.new(params[:shapes])
在一個隱藏字段定義_type價值似乎是不可能的。有任何想法嗎?
爲什麼看起來不可能? – 2013-04-09 20:03:48
它只是不會設置_type參數。似乎受保護或什麼的。 – Tim 2013-04-09 20:07:24
你把它定義爲'attr_accessible'嗎?如果無法直接設置,您還應該能夠通過助手處理它。 – 2013-04-09 20:08:51