2011-12-07 11 views
4

余分な改行を取り除く際に問題がありますが、Railsはエラーのあるフィールド間に挿入されているようです。Rails - エラーのあるフォームフィールド間に改行が表示される

新しいレールアプリを作成し、名前と年齢の「ユーザー」と呼ばれる足場を作成し、次にvalidates :name, :presence => truevalidates :age, :presence => trueと言っています。その後、users/newページを起動し、フィールドに何も入力せずに「送信」をクリックしてエラーページを生成しました。起こったのは、「名前」ラベルと名前を入力するフィールドの間に余分な改行が挿入されたことです。 「年齢」ラベルおよびそのフィールドと同じです。この余分な改行が起こらないようにするにはどうすればよいですか?

答えて

10

Ach、ちょうどこの人にも噛まれました。

エラーのあるフォームフィールドを持つと、#labelや#text_fieldのようなフォームヘルパーメソッドの出力が変更されます。

あなたの素敵な「ラベル」と「入力」タグがまだ放出されています。周囲のdivで囲まれた「ステルス」だけです。たとえば:

f.label :name 

から行く:

<label for="name">Name</label> 

へ:div要素の

<div class="field_with_errors"><label for="name">Name</label></div> 

デフォルトの動作では、 "ブロック" である - あなたの改行を引き起こしています。

これを修正するには、cssを変更します。例として:

余分な改行がラベルの種類の素敵だったが、私は、実際のフォームフィールドに改行したくなかったので、私が地雷を変えてしまったものだ
div.field_with_errors { 
    display: inline; 
} 
+0

ありがとうございました:)良いコール - 私はそのdivでステルスラッピングに気づきましたが、divの動作をスパンの動作に変更するとは思わなかった...よくやったサー – Kvass

0
.field_with_errors:nth-child(odd) { 
    padding: 2px; 
    display: table; 
} 
.field_with_errors:nth-child(even) { 
padding: 2px; 
display: inline; 
} 

関連する問題