これを行う良い方法を見つけることができなかったので、質問したいと思いました。
たとえば、ActiveRecord モデルでは、データベースに基づく属性は、適切なデータベースに基づく型に自動的に型変換されます。私がCategory
モデルを持っていて、それがいくつかの属性を持っている場合、たとえばname
とcategory_id
、次のようにすると:
Category.new(params[:category])
Railsname
は、それが String でcategory_id
あり、Integer であることを認識しています。
検証したいいくつかの一時的/合成属性があり、それらに特定のタイプがあるとします。それらをフォームから送信したいのですが、それらがどのように定義されているかに基づいて、文字列、整数、または日付 (たとえば) に自動的に変換されるようにしたいと考えています。
Rails モデルで次のように宣言するとします。
attr_accessor :some_number_variable
attr_accessor :some_date
Railsに「前者を整数にキャストし、後者を日付にキャストしてほしい」と伝える組み込みの方法はありますか?コントローラーに送信されたデータの一部である限り(私は実現しCategory.new(params[:category])
ます日付の例は、多くの日付形式が存在することを考えると、少しトリッキーかもしれません)。params[:category][:some_number_variable]
params[:category][:some_date]