オブジェクトにアドレスが必要な場合に「新規」および「編集」フォームに使用する、比較的単純なアドレス パーシャルがあります。それはうまくいきます。問題は、同じフィールドを「表示」ビューに表示したいということです。唯一の問題は、住所のパーシャルが「表示」ビューに存在しないフォームを必要とすることです。私はそれを複製しますが、新しい/編集用に1つ、ショー用に別の部分を持つのはあまりDRYではないようです。
誰かがこの問題を解決したかどうか疑問に思っていました。.new? の使用を考えました。そして.persisted? しかし、それはあまり役に立ちません。なぜなら、編集用のオブジェクトは、表示オブジェクトと同じ方法でそれらの両方を渡すからです。
どんな助けでも大歓迎です。
EDIT : これは、新規および編集用の部分的な私のアドレスです。完全に新しいパーシャルを再作成することはあまり DRY とは思えないため、new、edit、および show ビューと同じパーシャルを使用したいと思います。私が見る問題は、このパーシャルにはフォーム :f が必要であり、もちろん「表示」ビューでは使用できないことです。
<p>
<%= f.label :address_line_1, 'Address 1' %><br />
<%= f.text_field :address_line_1 %>
</p>
<p>
<%= f.label :address_line_2, 'Address 2' %><br />
<%= f.text_field :address_line_2 %>
</p>
<p>
<%= f.label :city %><br />
<%= f.text_field :city %>
</p>
<p class="address_state">
<%= f.label :state , "State" %><br />
<%= f.select :state, us_states, :include_blank => true %>
</p>
<p>
<%= f.label :zip_code, 'Zip Code' %><br />
<%= f.text_field :zip_code %>
</p>