私は古い学校かもしれません、そして私は多くのdiv / spanの試みを経験し、一度にテーブルを誓いました、しかしテーブルのいくつかの良い使用法があります、それらの1つ、imhoはフォームです。ラベルフィールドを別の背景色でシェーディングすることを好みます。私はいくつかの方法を試しましたが、入力(実際にはどちらか)側が幅をオーバーフローすると、ラベルの背景が台無しになります。別の試みを検討したいと思いますが、私はテーブルアプローチを本当に好みます。
2.xでは、構成を次のように設定しました。
config.wrappers :tag => :tr, :class => :input,
:hint_class => :field_with_hint, :error_class => :field_with_errors do |b|
b.use :label, :wrap_with => {:tag => :td, :class => :label}
b.use :input, :wrap_with => {:tag => :td, :class => :input}
b.use :hint, :wrap_with => { :tag => :span, :class => :hint }
b.use :error, :wrap_with => { :tag => :caption, :class => :error }
エラーを除いて、うまく機能します!私は最初にそれをスパンとして持っていて、それはテーブルの一番上に行きました。次に、それをキャプションに設定します。少なくともSafariでは、tbodyを終了してキャプションを挿入し、別のtbodyを開始しますが、テーブルフローが台無しになります。
エラーを強制的に入力ラッパーに含める方法はありますか?または他のアプローチ?足場アプローチのようにメインメッセージにエラーを入れることも受け入れます(そしておそらくこれが私がすべきことです)。私がこれを書き始めるまでそれについて考えませんでした、しかし私は単純なフォームエラーのものを使うことができなかったと思いますそして足場アプローチに戻ることができませんでした。
少なくとも私はあなたがそれをすることができると思います。たとえば、通常のform_for input(f.text_fieldなど)をf.inputと組み合わせて使用できることを知りませんでした(ドキュメントでは見つかりませんでしたが、実際にはよく見えませんでした!)。City、St、Zipを1列に並べるなどに最適です。