私は2つの関連モデルを持っています - Activity
とStep
としましょう。 Activity has_many :steps
およびStep belongs_to :activity
は、steps
の表がactivity_id
の列を持つことを意味します。Railsモデルの1つのフィールドの変更を防ぐ
これはHobo 1.3のため、Rails 3.0です。
Step
作成後の後に別のActivity
にステップを移動することはできません。 activity_id
フィールドを変更したくありません。
編集フォームからフィールドを削除しましたが、より強い制約があります。基本的には、update
(create
にはない)で列が触れられていないことを検証したいと思います。 HoboのドキュメントはHobo内のソートについて何も示唆していないので、私はRails validationsを見ていますが、これまでのところ私が覚えている "これを更新するだけです"という制約や、変化。
'attr_readonly'広告された通りに働く、bアプリの別の面にシワが発生している可能性があります。私は明日の検証アプローチを試し、それがうまくいくかどうかを見てみましょう。 – pjmorse
アプリケーションのどこか他の場所でIDを本当に変更する必要がある場合は、次のような検証方法でもIDを変更する必要があります: 'step.save(:validate => false)' – Deradon
他の場所では変更の問題はありません。それはオブジェクトのコピーです。 (つまり、 'Activity'をすべての' Steps'をコピーした形で仮想的にコピーしたとしたら、それは何らかの理由で動作していませんし、コピーのコードにこの変更が壊れたかどうかを十分に深く掘り下げていません。) – pjmorse