フォームから直接継承するモンゴイド オブジェクトの型 (:_type) を定義するのが好きです。
オブジェクトのタイプの定義は非常に簡単です。
shapes.build({ x: 0, y: 0 }, Circle)
しかし、フォームでパラメーターを使用して、そのようなオブジェクトを自動的に構築できるかどうか疑問に思っていました。このようなもの:
<%= 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 値を定義することはできないようです。何か案は?