0

自分の意見に問題があります。スタイルシートにzurbfoundationを使用しています。フォームに間違った入力を入力すると、フォームの上にエラーが表示されますが、エラーを含むフィールドは赤でラップされていません。これをさらに詳しく調べると、入力フィールドのfield_with_errorsdivラッパーはありません。これをさらに調べた後、f.text_fieldの代わりにf.inputを使用すると、正しいエラーラッピングが発生することがわかりました。

zurbにはtext_field、text_areaなどのスタイルがあるので、それらを使用していますが、railsからエラーdivを取得しません。これに対する良い解決策はありますか?

ここでは、正しいZurbファウンデーションのスタイルを取得していますが、field_with_errorsdivは取得していません。

.field
  = f.label :name
  = f.text_field :name, :class => "input-text"

ここではZurbスタイルを取得していませんが、要素はfield_with_errorsdivでラップされています。

.field
  = f.label :name
  = f.input :name, :class => "input-text"

したがって、基本的に、f.text_fieldヘルパーは、エラーを表示するためにdivクラスを提供するRailsビューメカニズムを何らかの形でバイパスしているようです。

4

2 に答える 2

1

f.text_fieldは Rails フォーム ヘルパーであり、simple_form のヘルパーではありません (simple-form でタグ付けしたので、それを使用していると仮定します)。単純なフォームは独自の属性のみをエラーでラップするため、Rails フォームのヘルパー属性を無視しています。

おそらくあなたが望むのは

= f.input :name, :as => :string

また、simple_form を使用した独自のラベルも必要ないため、次のように要約できf.labelますf.text_field

= f.input :name, :as => :string, :label => "Custom label"

:label 属性を省略すると、デフォルトでシンボルの名前になります。この場合、ラベルは「Name」になります。:label 属性を使用すると、「カスタム ラベル」というタイトルのラベルが得られます。

それが役立つことを願っています。

于 2013-07-10T19:37:41.310 に答える
0

classSimpleForm の入力に渡したい場合は、使用する必要があります

= f.input :name, :input_html => { :class => 'input-text' }
于 2012-06-28T16:40:38.410 に答える