0

モデルのフォームを作成するために simple_forms gem を使用しています。

モデルには、他のフィールドに基づく JavaScript 計算の結果であるいくつかのフィールドが含まれているため、入力フィールドではなくテキストとして表現して、グラフィカルに編集可能に見えず、人々を混乱させないようにしたいと考えています。

ここに私がこれまでに持っているものがあります:

- field = "time_quantity"
  %strong{:id => "#{field}_str", :class => "text-success"}
    = f.object[field]
  = f.input field, as: :hidden, input_html: {value: f.object[field]}

のテキスト%strongは値をテキストとして書き込み、後続の入力フィールドはフォームでモデルに挿入されるものです。

また、これの問題は、これらのフィールドに間違ったデータを入力すると、非表示になるため、横にエラー通知が表示されないことです。ここに示すように:

<strong class="text-success" id="time_quantity_str" data-original-title="" title=""></strong>
<div class="input hidden project_time_quantity field_with_errors">
  <input class="hidden input-medium" id="project_time_quantity" name="project[time_quantity]" type="hidden">
  <span class="error">can't be blank</span>
</div>

これを次のように変更したいと思います。

- field = "time_quantity"
  %strong{:id => "#{field}_str", :class => "text-success"}
    = f.input field, as: :plain, input_html: {value: f.object[field]}

ビューとJavaScriptでより多くのDRYを取得します。

どうすればこれを達成できると思いますか?

ありがとう、

4

1 に答える 1

1

無効な入力を使用するか、ラベルフィールドも使用できると思います。次のようにしてください:

<%= f.input :field_name, disabled: true, hint: 'You cannot change this field' %>

また

<%= f.label :field_name %>

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

于 2013-07-28T11:02:00.747 に答える