0

モデルの新しいフォームを作成するために Rail 4 で Bootstrap を使用していますが、次のような form_group を作成したいと考えています。

<label for="model_name">Name</label>
<input class="form-control" id="model_name" name="model[name]" placeholder="Your name" type="text">
<p class="help-inline" id="model_name_inline">Help inline</p>

私の見解では、私はこれを行います:

<%= form_for @model, url: {action: "create"} do |f| %>

<%= f.label :name %>
<%= f.text_field :name, placeholder: "Your name" %>
<%= content_tag :p, "Help inline", class: "help-inline", id: :name %>

<% end %>

しかし、content_tag の「id」をラベルと入力 (この場合は「model_name」) のようにして、id に「インライン」を追加することはできません。

どうすればこれを行うことができますか?フォームのカスタム フィールド用の content_field はありますか? :-)

前もって感謝します。

更新:コメントのおかげで、正しいIDで質問を更新しました

4

1 に答える 1

1

それをヘルパーに抽出します。例えば

module ApplicationHelper
  def inline_help(help_text, object_name, method)
    content_tag :p, help_text, class: "help-inline", id: "#{object_name}_#{method}_inline"
  end
end

その後、このようにフォーム内で使用できます

<%= form_for @model, url: {action: "create"} do |f| %>

<%= f.label :name %>
<%= f.text_field :name, placeholder: "Your name" %>
<%= inline_help 'Help inline', f.object_name, :name %>

<% end %>

お役に立てれば。

于 2014-11-23T01:09:33.007 に答える