すべての text_area フォーム ヘルパーで :rows => 5 を指定していることに気付いたので、その定義を調べたところ、DEFAULT_TEXT_AREA_OPTIONS がこれらのオプションを指示するハッシュであることがわかりました。ただし、ハッシュにはこのフリーズメソッドがあり、調べたところ、変更できないことを意味します。すべてのテキスト領域に対してアプリ全体の :rows => 5 を実行するためのいくつかのオプションをお勧めできれば、本当に感謝しています。
ありがとう
すべての text_area フォーム ヘルパーで :rows => 5 を指定していることに気付いたので、その定義を調べたところ、DEFAULT_TEXT_AREA_OPTIONS がこれらのオプションを指示するハッシュであることがわかりました。ただし、ハッシュにはこのフリーズメソッドがあり、調べたところ、変更できないことを意味します。すべてのテキスト領域に対してアプリ全体の :rows => 5 を実行するためのいくつかのオプションをお勧めできれば、本当に感謝しています。
ありがとう
できるよ:
独自のヘルパーを書く:
def readable_text_area(フォーム、メソッド、オプション = {}) form.text_area(メソッド、オプション) end
または、適切なオプションを使用して元の text_area に委譲する text_area メソッドを再定義します
または独自のメソッド「my_text_area」で ActionView::Helpers::InstanceTagMethods を拡張し、適切なオプションで元の text_area にデリゲートします。次に、「f.my_text_area(...)」を使用できます
または、DEFAULT_TEXT_AREA_OPTIONS を変更します。
.
module ActionView::Helpers::InstanceTagMethods
remove_const :DEFAULT_TEXT_AREA_OPTIONS
DEFAULT_TEXT_AREA_OPTIONS = { "cols" => 40, "rows" => 5 }
end
オプション 1 が最もクリーンです。2 & 3 パッチ既知のパブリック インターフェイス - 許容できるようです。4 つのパッチの内部 - 危険です。
私は次のファンです:
class ActionView::Helpers::InstanceTag
silence_warnings do
DEFAULT_FIELD_OPTIONS = {}
DEFAULT_TEXT_AREA_OPTIONS = {}
end
end
@gertas が警告したように、これは内部にパッチを適用しているため、リスクが伴います。これらの定数は、時々 Rails 内を移動しています。しかし、全体としては大したことではありません。また:
したがって、リスクが伴います。しかし、それほど多くはなく、これらのデフォルトを調整する最も簡単な方法です.