2

「simpleform」と「bootstrap-datepicker-rails」のジェムを備えたRailsアプリがあります。

ビューコードを次のように読みやすくしようとしています。

f.input :birthday, :mydatefield, :options => {:icon => "calendar", :data-date => "21.12.2012", :data-format => "dd-mm-yyyy"}

この瞬間、私はこれを書きます:

<div class="input-append date" id="user_birthday" data-date="12-02-2012" data-date-format="dd-mm-yyyy">
    <%= f.input_field :birthday, :disabled => true %>
    <span class="add-on">
        <i class="icon-calendar"></i>
    </span>
</div>

またはこれ

<%= f.input :birthday, :wrapper => :datepicker, :wrapper_html=> {id: "user-birthday", class: "date"} do %>
    <%= f.input_field :birthday, :disabled => true %>
    <%= content_tag :span, :class => "add-on" do %>
        <%= content_tag :i, :style => "color:grey", :class => "icon-calendar" do
        end %>
    <% end %>
<% end %>

私の結果を得るために:

ブートストラップアイコンと日付ピッカーを備えたシンプルフォーム

上記の両方がこの結果を生み出しており、これはうまく機能します。

<div class="control-group string required date" id="user-birthday">
    <label class="string required control-label" for="user_birthday"><abbr title="required">*</abbr> Birthday</label>
    <div class="controls">
        <div class="input-append">
            <input class="string required disabled" disabled="disabled" id="user_birthday" name="user[birthday]" size="50" type="text" />
            <span class="add-on">
                <i class="icon-calendar" style="color:grey"></i>
            </span>
        </div>
    </div>
</div>

変数をラッパーに解析しようとすると

:wrapper_html=> => {:data-date => "21-12-2012"}

エラーをスローします...

私がしなければならないこと?私は宝石を拡張するのはまったく新しいです。

これを機能させるために私は何を書かなければなりませんか?

  • SimpleFormラッパー?
  • app / input / datepickerInput.rb?
  • initializer / datepicker.rb?
  • ヘルパーメソッド?

例は非常に役立ちます!

よろしくお願いします!

4

2 に答える 2

0

カスタムフィールドを作成できます。これを行うには、このチュートリアルに従ってください。

于 2012-10-03T12:48:38.247 に答える
0

Rails実装フォームに戻りました。私にとって(初心者として)simple_formは十分に明確ではないようです。

上記のソリューションでは、FormBuilderを作成しました。

class BootstrapFormBuilder < ActionView::Helpers::FormBuilder

  def birthday_field_with_hint_and_icons (name, *args)
    options = args.extract_options!
    birthday_field_icons(name) + hint(options[:hint])
  end

  def birthday_field_icons(name, *args)
    dd = 'data-date'
    ddf = 'data-date-format'
    content_tag :div, class: "input-append date", dd => 18.years.ago.strftime("%d-%m-%Y"), ddf => "dd-mm-yyyy", id: "user_birthday" do
      text_field(name, :disabled => 'disabled') + icon("icon-calendar")
    end
  end

  private

  def icon(icon)
    content_tag :span, class: "add-on" do
      content_tag :i, style: "color: grey;", class: icon do
      end
    end
  end

  def hint(hint)
    content_tag :span, class: "help-block" do
      hint
    end
  end
end

ご協力いただきありがとうございます!

于 2012-10-12T18:04:09.670 に答える