2011-01-21 19 views
0

Appointmentというクラスがあります。このクラスの中には、他の属性の中でもstart_timeがあります。ネストされたフォームの「不明な属性」エラー

私のフォームでは、start_timeを直接使用していません。私はそれをstart_time_time(それは厄介な名前だと分かります)とstart_time_ymdに分けています。私の目標はstart_time_ymdstart_time_timeを完全なstart_timeに組み合わせることです。 (私は日付フィールドに付属のヘルパーのUIが好きではないため、これをやっています)

私が得ているエラーはunknown attribute: start_time_timeです。Appointmentにはないので当然驚くことではありませんstart_time_timeと呼ばれる属性。

start_time_timeが関連モデルのものであれば、私はaccepts_nested_attributes_for :whateverのようなことをすることができますが、そうでないので意味がありません。

私は何をしようとしていますか? (私はRailsのnoobだから、私にそれをスプーンフィードしなければならないかもしれません)

答えて

1

私はvirtual attributetext version)を使うのが最善の策だと思います。

+0

うーん、それは確かに右のアイデアのように思えるが、彼らは私と全く同じことをやっていません。彼らは2つのフィールドを1つに結合しており、1つのフィールドを2つに分割しています。 setter( 'start_time_time'と' start_time_ymd')を分離して一つの値( 'start_time')の値を設定しなければならないと思います。だから私はまだ私の問題を解決することができません。 –

+0

おそらく重要: 'Appointment'オブジェクトを' @appointment = Appointment.new(params [:appointment]) 'と言ってインスタンス化しようとしています。おそらく、空のオブジェクトをインスタンス化し、このソリューションを機能させるために個々の属性を個別に設定する必要があります。 –

+0

それぞれの属性を別々に設定すると機能し、仮想属性があるかどうかは関係ありませんでした。 –

1

あなたのモデルでこれを試みることができる:

attr_accessible :start_time_time, :start_time_ymd 
+0

あなたは 'attr_accessor'を意味しますか? – zlog

+1

いいえ、http://apidock.com/rails/ActiveModel/MassAssignmentSecurity/ClassMethods/attr_accessible – polarblau

+0

ああ、それがrails3で追加されたようです。私はrails2 atmを使用していますが、動作しませんでした。 – zlog

関連する問題