スーパークラスとしてアイテムがあり、その下に2つのサブクラスがあります。
ユーザーが最初に情報を入力するとき、入力パラメーターはのハッシュに含まれますparams[:item]
。そして、入力に応じて具象型をインスタンス化します。
# instantitate the concrete type according to the input
type_of_item = Object::const_get(inputs[:type])
@item = type_of_item.new
検証に失敗した場合、ユーザーを新しいページに戻します。ユーザーがデータを再入力しました
ただし、今回は、入力パラメータがのハッシュに含まれるparams[:bidding_item]
かparams[:direct_item
、bidding_itemとdirect_itemがItemのサブクラスである場合に含まれます。
私は次のようなことをしようとします:
format.html do
@item.becomes(Item)
render :action=>"new"
end
毎回同じ方法でデータを取得できるように、毎回入力パラメーターが含まれることを願っていますがparams[:item]
、機能しません。
今、私は私の問題を解決します。しかし、それはまったく良い習慣ではないと思います。
# form input
inputs = params[:item] || params[:bidding_item] || params[:direct_item]